General :: Find Which HT-cores Are Sharing A Physical Core From /proc/cpuinfo
Sep 2, 2011
There is a computer with two "Xeon(R) CPU X5550 @ 2.67GHz" CPU. The Hyper-threading is enabled, so it looks like 16-core system, but really there is only 8 physical cores.
I know that when hyperthreading is enabled, each physical core is splitted into two virtual cores. I want to know, which pair of virtual cores shares a physical core and which are not. Or, how (in what order) will Linux enumerate HT-cores comparing to real cores. (enumerating is done for sched_setaffinity and taskset masks).
I have a dump of /proc/cpuinfo file from the system.
I think there are possible:
CPU0-CPU7 are not sharing phys. core. CPU8-CPU15 too. But sharing is in pairs CPU0+CPU8, CPU(i)+CPU(i+8) and so on. or CPU0+CPU1 are from single physical, CPU2+CPU3, CPU(2*i)+CPU(2*i+1). or exotic CPU0+CPU15 sharing, CPU1+CPU14 ... or random?
The hard moment in this case is that there are 2 physical dies of CPU (two sockets), and usual recommendation of using "physical id:" field can't help
The cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU X5550 @ 2.67GHz
My CPU has 2 cores, so I can see two parts in /proc/cpuinfo.But, I want to know if CPUs that support Hyper-Threading (or similar tech), will /proc/cpuinfo give CPU info per core or per thread (or call it sibling)?I only know that Windows Task Manager will give CPU usage statistics per thread if the CPU supports HT.
Is there a simple way to determine the CPU socket from the output of /proc/cpuinfo. Determining the type of processor is simple enough, but the processor I have (Celeron) has two different possible sockets. The output of /proc/cpuinfo is:
processor : 0 vendor_id : GenuineIntel cpu family : 15
[Code]...
I've looked on the Intel processor finder web site with appropriate filters, but the stepping values do not appear to match anything.
I have fedora 14 installed and wish to use/learn kvm. I installed via groupinstall the virtualization group. I see vmx in /proc/cpuinfo. but when I start virt-manager I get a message that kvm is not installed or cannot be leaded into the kernel (to make a long message short). I am at a loss here as to what to do. I run cat /proc/modules and see "kvm 257420 0 - Live 0xffffffffa022a000". also after running modprobe kvm I run [root@fed14 ~]# lsmod | grep -i kvmkvm 257420 0 and see kvm there.
I recently built a new computer. For CPU, I am using AMD Athlon II X2 @ 2.8GHz... However, when I do cat /proc/cpuinfo, I get the following:
processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 6 model name : AMD Athlon(tm) II X2 240 Processor stepping : 2 cpu MHz : 800.000 cache size : 1024 KB
and same thing for processor: 1 Notice that for cpu MHz, it says 800.000. However, that is not correct... Shouldn't it say 2800? Is this a bug? Am I looking at this wrong?
I'm trying to retrieve a single string or value from /proc/cpuinfo, but when I try to extract the model (not the model name) the model name comes with it, also it likes to print it twice...
I'm using Ubuntu 10.04 x64, and I have an AMD Phenom 2 x4 940 CPU. First I have to underline that four cores worked perfectly in previous versions of Ubuntu as well as Windows.
When looking at system monitor it tells me that I have two CPUs/Cores, it should be four.
This is the output of CPU info:
Code: processor: 0 vendor_id: AuthenticAMD cpu family: 16 model: 4
Whenever I monitor my CPU's, it seems only the first is ever utilized, with the second always being at 0%.Does this mean it is not being used, or just not being reported as in use?Is there anything I could do to improve the situation if it is not being used as much as it could be?On Windows, I can assign processes to both cores, or either one. Is there a way to do something similar in Linux?
How do I find the OID code for a physical volume.I managed to get it to work with our snmp monitoring software to alert me when disk space was < 10% but the computer which was running the SNMP monitoring died.For the life of me I can't remeber how I got it to work.I have 4 partitions 1 has 88% free /etc/mapper/volgroup002 has 21% free /boot3 nfsd 0 bytes4 sunrpc 0 bytesHere is a copy of the OID I'm using 1.3.6.1.2.1.25.2.3.1.5.1 I change the last number to resemble the drive but i'm testing using 8% and they each return an error drive space low which is what the VB script tells it to do. I know the script works as I use it on Windows Servers no problems.I do an SNMPWALK on the server and it validates the above OID with HOST-RESOURCES-MIB::hrStorageSize so I know thats valid.But thats where I'm stuck. What value should I see if I were to use this OID 1.3.6.1.2.1.25.2.3.1.6.1 which is for free disk space.
I have a Dell XPS with Ubuntu 10.04 installed. I have a laptop dual booting Windows 7 and Ubuntu 10.04. I can see all shared folders on the Dell from my Windows partition in my laptop but can only see the shared folders in Home on the Dell from my Ubuntu partition in the laptop. My set up is as follows:
Dell:
root, home and swap are on the 1st 160g hard drive. 2nd 160g hard drive has only the one partition: /storage1 3rd hard drive, 500g has only one partition: /storage2
I cannot access any of the shares on either storage drive but I can see them from the ubuntu laptop. What I want to do is have access to those storage drives from my laptop. If I go into Nautilus, navigate to either storage drive, I cannot share them via right click, properties because I don't have root. Basically I am not sure how to go about this. There are a few folders in storage 1 and storage 2 that I want to be able to access from my Ubuntu partition in my laptop. This is one of the reasons I still have Windows on the other laptop partition but I really would like to dump it. Samba is installed and I tried giving permissions that way. It allowed me to add the drives but it had no effect.
I am using Kernel 2.6.35.4 on an Intel Core2Duo based system.
1) I have to find on which core a particular task is running on . OR 2) I have to just log whenever my task is scheduled on any of the cores with the cpu core number & timestamp info. I am ready to modify the kernel to do printk or some logging . I guess there used to be 2 fields called 'processor' and 'last_processor' in task_struct in older kernels which probably had this information .
So what do I do to find out on which core a particular task is running on ?
Or ,
Are there any utilities that are simple-to-use and can display the tasks that are running on each of the cores , including the cpu core info ? top , mpstat etc do not tell you on which cpu core a task is running on .
I've got the F13 LiveCD that I was able to boot and use using the "nomodeset" boot option. From the desktop I'm trying to perform an Install to Hard Drive. I've read the Install from LiveCD post regarding the creation of a /boot partition and a / root partition. I've tried creating them without the LVM group and with. But every time I appempt to install I get...
An error occurred mounting device proc as /proc: mount failed: (9, None). This is a fatal error and the install cannot continue.
Hardware is a Sager 8887 (P4, 3.06HT, 60GB HDD, Radeon 9000 graphics adapter)
i got problem which slows my boot to linux. Before loading Ubuntu logo in console i see fast flash with words: "Warning: unable to find a suitable fs in /proc/mount, is it mounted? Use --subdomainfs to override." What should i do? To fix that warning?
I am in need of finding out the physical interface corresponds to eth0,eth1,eth2., As similar like the lscfg command which is available in the AIX operating system. The output given below got it from AIX OS.
I allocated a chunk of memory using kmalloc in a Device Driver. Kmalloc provides a pointer to the allocated memory. This is one of my first few drivers.
I assume that the address returned is a Virtual address. I need to find the physical address of the memory location. I am working on an Intel 64 bit Fedora machine. I used the virt_to_phys() routine present in <asm/io_64.h>. I found that this routine returns an unsigned long value (32 bit) instead of an unsigned long long value (64 bit). Moreover, it seems that it simply returns the address - OFFSET instead of extracting the value in the page tables.
So is there any function / system call in Linux which will allow me to see the actual physical address on the Intel 64 arch.
I recently read in a forum that by default the Linux kernel only activates one of two cores in a dual core processor. Searching online gave one option to find out and that was the mpstat command. I therefore ran the command and got the following output.As the result says, it shows only 1 cpu. I was wondering what I could do to activate both cores in my machine, and whether doing so was going to cause me any problems.
I have (at least 4) native USB ports that contain flash drives. I know that the /dev/sd[abcd] devices are created in the order they were inserted, but say you have all four plugged in at boot time, or further, they can be plugged and unplugged in real time. At times, /dev/sdf, /dev/sdg, etc. are created as well. I'm ignoring external hubs for now.
I need to know which drive is plugged into the "top port on the front panel", etc, by physical location. From dmesg I can check right after booting and get the physical assignment of a PCI device, say, PCI 0000:00:10.3, as being assigned to the EHCI usb bus. From /proc/bus/usb/devices, and the "T:" field, I have learned that the physical connectors I'm interested are known as USB Bus 1, Port=00, Port=01, Port=04, and Port=05.
From lsusb I can see all sorts of information from the USB point of view, but with no /dev/sd references.
From /proc/scsi/scsi, I can see what scsi devices have been created, with a count consistent with the number of flash drives plugged in, but no USB data.
So, I can get lots of information from the USB storage point of view, and lots of information from the SCSI point of view, but nowhere can I find how to correlate them. In other words, if I want to mount the drive plugged into a given physical slot, how can I find the /dev/sd device I need to mount? udev isn't really interesting here, because I'm just looking for the information that udev would use to answer the same question.
I've done some heaving exploring in the /sys and /proc filesystems and have not yet found where the USB and SCSI worlds intersect.
The closest I have found is (where "Port" is the physical port number from above):
This seems to have some mapping to the physical port and references a "/dev/sd[a-z]" value, but I don't know how reliable it might be, nor do I know if my having to increment that physical port by 1 is meaningful. Anyone have a simpler approach?
So, my goal becomes mount /dev/<sd that was created for the top slot> /mnt/top mount /dev/<sd that was created for the bottom slot> /mnt/bottom etc.
I've a program that launches new processes, and wait for them to die before it exits. So, for example, my program is a process, and it launches 3 more processes, and when the 3 child processes end, it will exit.
As you see, at end of the example, the program used a total number of 4 processes.
1 - Now, I'm running this program in a CPU with 4 cores. This means that the program used each core for each process?
I'm trying to find out what is the difference between wifi0 and ath0 (atheros wifi card) in terms of packet counters shown in proc/net/dev pseudofile. The fact is that wifi0 and ath0 packet counters are different. I've read that wifi0 refers to the physical device and ath0 refers to virtual device over wifi0, so, as far as I know, packets counters in both devices should be the same, isn't it? Another annoying question for me is that ath0 doesn't show any erroneous packets, while wifi0 does.
When I was using Virtual Box in Windows 7, I could choose how many CPU cores to assign to the guest OS. Now I'm using Linux, and when I installed Virtual Box, I couldn't find that option. System Monitor shows that when the VM is busy only one CPU core goes to 100% while the rest are near 0%. How can I make Virtual Box in Linux use multiple CPU cores?
I am using the standalone k10temp temperature sensor but it doesn't give the actual temperature of the cpu, just some "bogus" temp value that isn't very useful.Does anyone know how you can calculate the real temperature from this reading?
Many commands in Mathematica 8 (Integrate, Simplify, etc.) seem to only be using a single core on my system. Is there any way I can change the affinity so that it utilizes all cores for computations?
I have a four-cores machine (core1,core2, core3, core4 ). I want to test the communication or latency between two cores (for example, core1 and core2; core3 and core4). Does anyone know how to write a code to test it under linux operating system?