[SOLVED] kernel :address generated are non-uniform
Linux - Virtualization and CloudThis forum is for the discussion of all topics relating to Linux Virtualization and Linux Cloud platforms. Xen, KVM, OpenVZ, VirtualBox, VMware, Linux-VServer and all other Linux Virtualization platforms are welcome. OpenStack, CloudStack, ownCloud, Cloud Foundry, Eucalyptus, Nimbus, OpenNebula and all other Linux Cloud platforms are welcome. Note that questions relating solely to non-Linux OS's should be asked in the General forum.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
I am using marss with qemu, but this question is related to qemu & kernel. When I use:
qemu-system-x86_64 -m 4G myImage.img
and print physical addresses that are passed to cache hierarchy, I see that the physical addresses are not in uniform range: for example:
GBrange numberOfAddresses
0-0.5---> 3325
0.5-1---> 1253
1-1.5---> 0
1.5-2---> 30
2-2.5---> 0
2.5-3---> 1708
3-3.5---> 10521
3.5-4---> 0
4-4.5--> 15428
This phenomenon affects my work in following way: In Marss (cycle-accurate simulator for x86), these addresses are used to access cache hierarchy. If phys-addresses are in only in certain range, then, only few cache-set-locations will be accessed and others not. I am studying cache, and this phenomenon stops me from applying any algorithm in cache: since cache is arbitrarily used.
Can I do something to make these addresses uniform? Since it is a kernel issue, I don't know what can be done? I would be grateful for any help.
Noticed you have marked your thread as solved; Could you kindly share the solution you found with us?
Cheers,
Josh
Actually, I realized that, since cache sets are calculated by modulo; hence, even if not all physical addresses are utilized, but all cache-sets are utilized; since more than one phys address map to single cache set. Also, I took variance of number of accesses to different cache sets (4MB cache), and for 100M instruction, the Standard deviation is 48 which is not that bad!
Since I am mainly concerned with cache, I am OK for right now. But this physical address usage by kernel is still surprising. Thanks.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.