Re: SLUB defrag pull request?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 22 Oct 2008, Miklos Szeredi wrote:

Why?  The kmem_cache_free() doesn't touch the contents of the object,
does it?

Because filesystem code may be running on other processors which may be freeing the dentry.

Because the slab starts out with a series of objects left in a slab. It
needs to do build a list of objects etc in a way that is independent as
possible from the user of the slab page. It does that by locking the slab
page so that free operations stall until the reference has been
established. If it would not be shutting off frees then the objects could
vanish under us.

It doesn't matter.  All we care about is that the dentry is on the
lru: it's cached but unused.  Every other state (being created,
active, being freed, freed) is uninteresting.

We cannot figure out that it is on the lru if we do not have a stable reference to the object.

Sure, and all that is possible without doing this messy 2 phase thing.
Unless I'm still missing something obvious...

Obviously one cannot free or handle an object that may be concurrently freed on another processor.

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux