* [patch 18/21] Filesystem: Socket inode defragmentation [not found] <20080510030831.796641881@sgi.com> @ 2008-05-10 3:08 ` Christoph Lameter 2008-05-13 13:28 ` Evgeniy Polyakov 0 siblings, 1 reply; 4+ messages in thread From: Christoph Lameter @ 2008-05-10 3:08 UTC (permalink / raw) To: akpm Cc: linux-kernel, netdev, linux-fsdevel, Mel Gorman, andi, Rik van Riel, Pekka Enberg, mpm [-- Attachment #1: 0030-FS-Socket-inode-defragmentation.patch --] [-- Type: text/plain, Size: 978 bytes --] Support inode defragmentation for sockets Cc: netdev@vger.kernel.org Reviewed-by: Rik van Riel <riel@redhat.com> Signed-off-by: Christoph Lameter <clameter@sgi.com> --- net/socket.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/net/socket.c b/net/socket.c index 9d3fbfb..205f450 100644 --- a/net/socket.c +++ b/net/socket.c @@ -269,6 +269,12 @@ static void init_once(struct kmem_cache *cachep, void *foo) inode_init_once(&ei->vfs_inode); } +static void *sock_get_inodes(struct kmem_cache *s, int nr, void **v) +{ + return fs_get_inodes(s, nr, v, + offsetof(struct socket_alloc, vfs_inode)); +} + static int init_inodecache(void) { sock_inode_cachep = kmem_cache_create("sock_inode_cache", @@ -280,6 +286,8 @@ static int init_inodecache(void) init_once); if (sock_inode_cachep == NULL) return -ENOMEM; + kmem_cache_setup_defrag(sock_inode_cachep, + sock_get_inodes, kick_inodes); return 0; } -- 1.5.4.4 -- ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [patch 18/21] Filesystem: Socket inode defragmentation 2008-05-10 3:08 ` [patch 18/21] Filesystem: Socket inode defragmentation Christoph Lameter @ 2008-05-13 13:28 ` Evgeniy Polyakov 2008-05-15 17:40 ` Christoph Lameter 0 siblings, 1 reply; 4+ messages in thread From: Evgeniy Polyakov @ 2008-05-13 13:28 UTC (permalink / raw) To: Christoph Lameter Cc: akpm, linux-kernel, netdev, linux-fsdevel, Mel Gorman, andi, Rik van Riel, Pekka Enberg, mpm Hi Christoph. On Fri, May 09, 2008 at 08:08:49PM -0700, Christoph Lameter (clameter@sgi.com) wrote: > Support inode defragmentation for sockets Out of curiosity, how can you drop socket inode, since it is always attached to socket which is removed automatically when connection is closed. Any force of dropping socket inode can only result in connection drop, i.e. there are no inodes, which are placed in cache and are not yet freed, if there are no attached sockets. So question is how does it work for sockets? -- Evgeniy Polyakov ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [patch 18/21] Filesystem: Socket inode defragmentation 2008-05-13 13:28 ` Evgeniy Polyakov @ 2008-05-15 17:40 ` Christoph Lameter 2008-05-15 18:23 ` Evgeniy Polyakov 0 siblings, 1 reply; 4+ messages in thread From: Christoph Lameter @ 2008-05-15 17:40 UTC (permalink / raw) To: Evgeniy Polyakov Cc: akpm, linux-kernel, netdev, linux-fsdevel, Mel Gorman, andi, Rik van Riel, Pekka Enberg, mpm On Tue, 13 May 2008, Evgeniy Polyakov wrote: > Out of curiosity, how can you drop socket inode, since it is always > attached to socket which is removed automatically when connection is > closed. Any force of dropping socket inode can only result in connection > drop, i.e. there are no inodes, which are placed in cache and are not > yet freed, if there are no attached sockets. > > So question is how does it work for sockets? All inodes are inactivated and put on a lru before they are freed. Those could be reclaimed by inode defrag. Socket inode defrag is not that important. Just shows that this can be applied in a general way. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [patch 18/21] Filesystem: Socket inode defragmentation 2008-05-15 17:40 ` Christoph Lameter @ 2008-05-15 18:23 ` Evgeniy Polyakov 0 siblings, 0 replies; 4+ messages in thread From: Evgeniy Polyakov @ 2008-05-15 18:23 UTC (permalink / raw) To: Christoph Lameter Cc: akpm, linux-kernel, netdev, linux-fsdevel, Mel Gorman, andi, Rik van Riel, Pekka Enberg, mpm On Thu, May 15, 2008 at 10:40:11AM -0700, Christoph Lameter (clameter@sgi.com) wrote: > All inodes are inactivated and put on a lru before they are freed. Those I have to check my memory, but iput()->destroy_inode() highlights first for sockets... -- Evgeniy Polyakov ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-05-15 18:23 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20080510030831.796641881@sgi.com>
2008-05-10 3:08 ` [patch 18/21] Filesystem: Socket inode defragmentation Christoph Lameter
2008-05-13 13:28 ` Evgeniy Polyakov
2008-05-15 17:40 ` Christoph Lameter
2008-05-15 18:23 ` Evgeniy Polyakov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).