Hi everybody, I''m Andrea and I''m a student from Politecnico di Milano, for a project at my university I need to implement cache coloring for the third level cache for xen-4.2.3 .I''m quite lost in this huge amount of code and documentation and I was wondering if here someone could help me answering some little questions: -where is the code implementing the buddy allocator for the third level caches?(i''ve found two buddies but none of them seems to me the right one...I''ll be implementig this in order to support x86 64 bit architecture) -there''s a documentation about it? I apologize if that''s not the right list (if it''s not please tell me where I can ask) and I hope I was clear in explaining my problem. Thanks in advance for your patience! Andrea _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
On 22/11/13 09:48, Andrea Braschi wrote:> Hi everybody, > I''m Andrea and I''m a student from Politecnico di Milano, for a project > at my university I need to implement cache coloring for the third > level cache for xen-4.2.3 .I''m quite lost in this huge amount of code > and documentation and I was wondering if here someone could help me > answering some little questions: > > -where is the code implementing the buddy allocator for the third > level caches?(i''ve found two buddies but none of them seems to me the > right one...I''ll be implementig this in order to support x86 64 bit > architecture)None - there is nothing special about the L3 cache as far as memory management is concerned. The buddy allocators present are just for allocation of RAM.> > -there''s a documentation about it? > > I apologize if that''s not the right list (if it''s not please tell me > where I can ask) and I hope I was clear in explaining my problem.This is probably the best place to ask. ~Andrew> > Thanks in advance for your patience! > > Andrea > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
On ven, 2013-11-22 at 10:48 +0100, Andrea Braschi wrote:> Hi everybody, >Hello, and welcome!> I''m Andrea and I''m a student from Politecnico di Milano, for a project > at my university I need to implement cache coloring for the third > level cache for xen-4.2.3 . >Ok, two questions: 1. My "OS concepts" my be a bit rusty, but I only remember something called page coloring. Both Google and Wikipedia seems to agree that page and cache coloring are the same thing, but then I don''t understand why you specifically mention L3 above. Can you confirm that it is this that you are after? http://en.wikipedia.org/wiki/Cache_coloring http://www.freebsd.org/doc/en/articles/vm-design/page-coloring-optimizations.html 2. Why 4.2.3 and not upstream?> -where is the code implementing the buddy allocator for the third > level caches?(i''ve found two buddies but none of them seems to me the > right one...I''ll be implementig this in order to support x86 64 bit > architecture) >As far as I know (and as far as I''m able to grep :-)), I think you should start looking at xen/common/page_alloc.c. $ grep -i buddy xen/* -R xen/arch/x86/x86_64/mm.c: * buddy allocator relies on this assumption. xen/arch/x86/x86_64/mm.c: * Mark the allocated page before put free pages to buddy allocator xen/common/page_alloc.c: * Simple buddy heap allocator for Xen. xen/common/page_alloc.c: * BINARY BUDDY ALLOCATOR xen/common/page_alloc.c:/* Remove any offlined page in the buddy pointed to by head. */ xen/common/page_alloc.c: * not freeing it to the buddy allocator.> -there''s a documentation about it? >At this level, and for these kind of things, the code itself is the only existent documentation. :-)> I apologize if that''s not the right list (if it''s not please tell me > where I can ask) and I hope I was clear in explaining my problem. >It is the right place, so feel free o ask. The only thing that is required is to be as specific as possible, i.e., describe your goal, what it is that you are doing to achieve it and what it is that is not working / you are not understanding. This is a nice guide/checklist: http://wiki.xenproject.org/wiki/Asking_Xen_Devel_Questions Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
> > 1. My "OS concepts" my be a bit rusty, but I only remember something > called page coloring. Both Google and Wikipedia seems to agree that > page and cache coloring are the same thing, but then I don''t > understand why you specifically mention L3 above. Can you confirm > that it is this that you are after? > http://en.wikipedia.org/wiki/Cache_coloring > > http://www.freebsd.org/doc/en/articles/vm-design/page-coloring-optimizations.html > > - yes is what i meantAs far as I know (and as far as I''m able to grep :-)), I think you> should start looking at xen/common/page_alloc.c. > > $ grep -i buddy xen/* -R > xen/arch/x86/x86_64/mm.c: * buddy allocator relies on this assumption. > xen/arch/x86/x86_64/mm.c: * Mark the allocated page before put free > pages to buddy allocator > xen/common/page_alloc.c: * Simple buddy heap allocator for Xen. > xen/common/page_alloc.c: * BINARY BUDDY ALLOCATOR > xen/common/page_alloc.c:/* Remove any offlined page in the buddy pointed > to by head. */ > xen/common/page_alloc.c: * not freeing it to the buddy allocator.yes i''ve already done it!...and after two days spent at looking at xen/common/page_alloc.c I was wondering if it was the right chunck of code (I was also been digging through a lot of mm.c...)> At this level, and for these kind of things, the code itself is the only > existent documentation. :-) >:-(...XD> It is the right place, so feel free o ask. The only thing that is > required is to be as specific as possible, i.e., describe your goal, > what it is that you are doing to achieve it and what it is that is not > working / you are not understanding. > > This is a nice guide/checklist: > http://wiki.xenproject.org/wiki/Asking_Xen_Devel_Questions > > Ok thanks, i''ll be more specific as soon as I can! by now i really thankyou for the attention, soon I''ll be more precise! Andrea _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
On ven, 2013-11-22 at 18:30 +0100, Andrea Braschi wrote:> 1. My "OS concepts" my be a bit rusty, but I only remember > something > called page coloring. Both Google and Wikipedia seems to > agree that > page and cache coloring are the same thing, but then I > don''t > understand why you specifically mention L3 above. Can you > confirm > that it is this that you are after? > http://en.wikipedia.org/wiki/Cache_coloring > > http://www.freebsd.org/doc/en/articles/vm-design/page-coloring-optimizations.html > > - yes is what i meant >Ok.> > > > As far as I know (and as far as I''m able to grep :-)), I think > you > should start looking at xen/common/page_alloc.c. > > $ grep -i buddy xen/* -R > xen/arch/x86/x86_64/mm.c: * buddy allocator relies on this > assumption. > xen/arch/x86/x86_64/mm.c: * Mark the allocated page before > put free pages to buddy allocator > xen/common/page_alloc.c: * Simple buddy heap allocator for > Xen. > xen/common/page_alloc.c: * BINARY BUDDY ALLOCATOR > xen/common/page_alloc.c:/* Remove any offlined page in the > buddy pointed to by head. */ > xen/common/page_alloc.c: * not freeing it to the buddy > allocator. > > > yes i''ve already done it!...and after two days spent at looking at > xen/common/page_alloc.c I was wondering if it was the right chunck of > code > (I was also been digging through a lot of mm.c...) >Sure. Well, for stuff related to the memory allocator, I really think that''s what you are looking for. Why were you thinking that it could not be?> This is a nice guide/checklist: > http://wiki.xenproject.org/wiki/Asking_Xen_Devel_Questions > > Ok thanks, i''ll be more specific as soon as I can! by now i really > thank you for the attention, soon I''ll be more precise! >Sure! :-) Oh, sorry if insist, but you didn''t mention why 4.2.3 and not the upstream git repo: http://xenbits.xen.org/gitweb/?p=xen.git;a=summary (look at the staging branch). I''m asking because, if you''ll end up with something sensible, something that brings some nice performances improvements, it would be great to integrate in in Xen upstream, and that would be a lot easier if you work with the latest upstream, rather than with a specific (especially if a quite old) version. If you need help in understanding what "work with the latest upstream" means, I''m sure we can help. :-) Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
[Adding back the list to the Cc... Please, don''t drop it :-)] On dom, 2013-11-24 at 12:14 +0100, Andrea Braschi wrote:> 2013/11/23 Dario Faggioli <dario.faggioli@citrix.com>> Sure. Well, for stuff related to the memory allocator, I > really think > that''s what you are looking for. > > Why were you thinking that it could not be? > > > Thanks to you''re attentions and suggestions i went back looking better > what''s page coloring and now I''m really conviced that page_alloc.c > it''s my buddy! as soon as could orient me through its code I''ll ask > you if I for any doubt. >Right.> I''m asking because, if you''ll end up with something sensible, > something > that brings some nice performances improvements, it would be > great to > integrate in in Xen upstream, and that would be a lot easier > if you work > with the latest upstream, rather than with a specific > (especially if a > quite old) version. > > > That''s nice. I will do my best to convince my Ph.D (Shouldn''t be hard) >Ok. Direct him here (or ask anything you think might be useful in that regard yourself), if you need any backup with that. :-P Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel