Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
Christoph Lameter wrote: > On Thu, 15 Feb 2007, Jeremy Fitzhardinge wrote: > > >> Remove the ctor for the pgd cache. There's no point in having the >> cache machinery do this via an indirect call when all pgd are freed in >> the one place anyway. >> > > Great. We finally get rid of this evil . > > On second throughts: > > Are you sure that you understand what you are modifying? The ctor is not > called when you allocate an object but when the slab allocates it. Freeing > an object does not make the slab free it. It will hold it for the next > kmalloc. So you may just have reduced performance somewhat by addiung > additional ctor processing and possibly disturbed the preservation of > cache hot pgds. It's true I wrote this patch as a result of accidentally reading slob.c rather than slab.c, which was mostly as a result of hopeful thinking (I knew that there has been discussion about removing all the slab cache stuff, and I assumed that it had already happened). As a result I'm withdrawing this patch for now, but with any luck it will be useful at some point. J - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
On Thu, 15 Feb 2007, Jeremy Fitzhardinge wrote: > Remove the ctor for the pgd cache. There's no point in having the > cache machinery do this via an indirect call when all pgd are freed in > the one place anyway. Great. We finally get rid of this evil . On second throughts: Are you sure that you understand what you are modifying? The ctor is not called when you allocate an object but when the slab allocates it. Freeing an object does not make the slab free it. It will hold it for the next kmalloc. So you may just have reduced performance somewhat by addiung additional ctor processing and possibly disturbed the preservation of cache hot pgds. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
Nick Piggin wrote: > Pekka Enberg wrote: >> On 2/16/07, Jeremy Fitzhardinge <[EMAIL PROTECTED]> wrote: >> >>> Remove the ctor for the pgd cache. There's no point in having the >>> cache machinery do this via an indirect call when all pgd are freed in >>> the one place anyway. >> >> >> The reason we have slab constructors and destructors is to _avoid_ >> reinitializing every time we allocate an object. AFAICT your changing >> the code now to do _more_ work than before, so is there some other >> reason why you want to do this than avoiding an indirect call? > > Sometimes it is better for the caches to initialise an object > immediately, but in this case I think it is better to use the > slab ctor because it is very unlikely to use many cachelines > immediately anyway. > > It would be nice to put the "why" in the changelogs, rather than > "what". Not everyone wants to go through the whole patchset to > decipher why Xen possibly needs something. Hm, I think I was mislead by looking at kmem_cache_alloc in slob.c rather than the one that's actually used in slab.c. There's no particular Xen reason for this patch, so I can drop it. J - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
Pekka Enberg wrote: On 2/16/07, Jeremy Fitzhardinge <[EMAIL PROTECTED]> wrote: Remove the ctor for the pgd cache. There's no point in having the cache machinery do this via an indirect call when all pgd are freed in the one place anyway. The reason we have slab constructors and destructors is to _avoid_ reinitializing every time we allocate an object. AFAICT your changing the code now to do _more_ work than before, so is there some other reason why you want to do this than avoiding an indirect call? Sometimes it is better for the caches to initialise an object immediately, but in this case I think it is better to use the slab ctor because it is very unlikely to use many cachelines immediately anyway. It would be nice to put the "why" in the changelogs, rather than "what". Not everyone wants to go through the whole patchset to decipher why Xen possibly needs something. -- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
On 2/16/07, Jeremy Fitzhardinge <[EMAIL PROTECTED]> wrote: Remove the ctor for the pgd cache. There's no point in having the cache machinery do this via an indirect call when all pgd are freed in the one place anyway. The reason we have slab constructors and destructors is to _avoid_ reinitializing every time we allocate an object. AFAICT your changing the code now to do _more_ work than before, so is there some other reason why you want to do this than avoiding an indirect call? - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [patch 07/21] Xen-paravirt: remove ctor for pgd cache
Jeremy Fitzhardinge wrote: Remove the ctor for the pgd cache. There's no point in having the cache machinery do this via an indirect call when all pgd are freed in the one place anyway. Signed-off-by: Jeremy Fitzhardinge <[EMAIL PROTECTED]> Acked-by: Zachary Amsden <[EMAIL PROTECTED]> This does introduce a bug for us, but that is trivially fixed, and I would like to inspect final merged code to make sure bugfix is proper. Zach - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/