2010-09-14 10:44:49

by Benny Halevy

[permalink] [raw]
Subject: [PATCH 1/1] SQUASHME: pnfs: clean up layoutcommit_mempool

Signed-off-by: Benny Halevy <[email protected]>
---
fs/nfs/pnfs.c | 16 +++++++---------
1 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 61dbc0a..b576470 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -71,7 +71,7 @@ static spinlock_t pnfs_spinlock = __SPIN_LOCK_UNLOCKED(pnfs_spinlock);
* pnfs_modules_tbl holds all pnfs modules
*/
static struct list_head pnfs_modules_tbl;
-static struct kmem_cache *pnfs_cachep;
+static struct kmem_cache *pnfs_layoutcommit_cachep;
static mempool_t *pnfs_layoutcommit_mempool;

static inline struct nfs4_layoutcommit_data *pnfs_layoutcommit_alloc(void)
@@ -102,18 +102,16 @@ pnfs_initialize(void)
{
INIT_LIST_HEAD(&pnfs_modules_tbl);

- pnfs_cachep = kmem_cache_create("nfs4_layoutcommit_data",
+ pnfs_layoutcommit_cachep = kmem_cache_create("nfs4_layoutcommit_data",
sizeof(struct nfs4_layoutcommit_data),
0, SLAB_HWCACHE_ALIGN, NULL);
- if (pnfs_cachep == NULL)
+ if (pnfs_layoutcommit_cachep == NULL)
return -ENOMEM;

- pnfs_layoutcommit_mempool = mempool_create(MIN_POOL_LC,
- mempool_alloc_slab,
- mempool_free_slab,
- pnfs_cachep);
+ pnfs_layoutcommit_mempool = mempool_create_slab_pool(MIN_POOL_LC,
+ pnfs_layoutcommit_cachep);
if (pnfs_layoutcommit_mempool == NULL) {
- kmem_cache_destroy(pnfs_cachep);
+ kmem_cache_destroy(pnfs_layoutcommit_cachep);
return -ENOMEM;
}

@@ -124,7 +122,7 @@ pnfs_initialize(void)
void pnfs_uninitialize(void)
{
mempool_destroy(pnfs_layoutcommit_mempool);
- kmem_cache_destroy(pnfs_cachep);
+ kmem_cache_destroy(pnfs_layoutcommit_cachep);
}

/* search pnfs_modules_tbl for right pnfs module */
--
1.7.2.2



2010-09-14 13:25:40

by Benny Halevy

[permalink] [raw]
Subject: Re: [PATCH 1/1] SQUASHME: pnfs: clean up layoutcommit_mempool

On 2010-09-14 13:37, Fred Isaman wrote:
> Note that in an internal review, Trond suggested that we can get rid
> of the mempool entirely, relying instead on kmalloc. This has the
> advantage that it basically makes pnfs_init/uninit no-ops that can be
> removed. This idea was integrated into the submission patches. I
> also have a rebase (that still needs some cleanup) that carries the
> removal up to your pnfs-submit branch.

OK, makes sense.

Benny

>
> Fred
>
>
> On Tue, Sep 14, 2010 at 3:44 AM, Benny Halevy <[email protected]> wrote:
>> Signed-off-by: Benny Halevy <[email protected]>
>> ---
>> fs/nfs/pnfs.c | 16 +++++++---------
>> 1 files changed, 7 insertions(+), 9 deletions(-)
>>
>> diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
>> index 61dbc0a..b576470 100644
>> --- a/fs/nfs/pnfs.c
>> +++ b/fs/nfs/pnfs.c
>> @@ -71,7 +71,7 @@ static spinlock_t pnfs_spinlock = __SPIN_LOCK_UNLOCKED(pnfs_spinlock);
>> * pnfs_modules_tbl holds all pnfs modules
>> */
>> static struct list_head pnfs_modules_tbl;
>> -static struct kmem_cache *pnfs_cachep;
>> +static struct kmem_cache *pnfs_layoutcommit_cachep;
>> static mempool_t *pnfs_layoutcommit_mempool;
>>
>> static inline struct nfs4_layoutcommit_data *pnfs_layoutcommit_alloc(void)
>> @@ -102,18 +102,16 @@ pnfs_initialize(void)
>> {
>> INIT_LIST_HEAD(&pnfs_modules_tbl);
>>
>> - pnfs_cachep = kmem_cache_create("nfs4_layoutcommit_data",
>> + pnfs_layoutcommit_cachep = kmem_cache_create("nfs4_layoutcommit_data",
>> sizeof(struct nfs4_layoutcommit_data),
>> 0, SLAB_HWCACHE_ALIGN, NULL);
>> - if (pnfs_cachep == NULL)
>> + if (pnfs_layoutcommit_cachep == NULL)
>> return -ENOMEM;
>>
>> - pnfs_layoutcommit_mempool = mempool_create(MIN_POOL_LC,
>> - mempool_alloc_slab,
>> - mempool_free_slab,
>> - pnfs_cachep);
>> + pnfs_layoutcommit_mempool = mempool_create_slab_pool(MIN_POOL_LC,
>> + pnfs_layoutcommit_cachep);
>> if (pnfs_layoutcommit_mempool == NULL) {
>> - kmem_cache_destroy(pnfs_cachep);
>> + kmem_cache_destroy(pnfs_layoutcommit_cachep);
>> return -ENOMEM;
>> }
>>
>> @@ -124,7 +122,7 @@ pnfs_initialize(void)
>> void pnfs_uninitialize(void)
>> {
>> mempool_destroy(pnfs_layoutcommit_mempool);
>> - kmem_cache_destroy(pnfs_cachep);
>> + kmem_cache_destroy(pnfs_layoutcommit_cachep);
>> }
>>
>> /* search pnfs_modules_tbl for right pnfs module */
>> --
>> 1.7.2.2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>

2010-09-14 11:37:17

by Fred Isaman

[permalink] [raw]
Subject: Re: [PATCH 1/1] SQUASHME: pnfs: clean up layoutcommit_mempool

Note that in an internal review, Trond suggested that we can get rid
of the mempool entirely, relying instead on kmalloc. This has the
advantage that it basically makes pnfs_init/uninit no-ops that can be
removed. This idea was integrated into the submission patches. I
also have a rebase (that still needs some cleanup) that carries the
removal up to your pnfs-submit branch.

Fred


On Tue, Sep 14, 2010 at 3:44 AM, Benny Halevy <[email protected]> wrote:
> Signed-off-by: Benny Halevy <[email protected]>
> ---
> ?fs/nfs/pnfs.c | ? 16 +++++++---------
> ?1 files changed, 7 insertions(+), 9 deletions(-)
>
> diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
> index 61dbc0a..b576470 100644
> --- a/fs/nfs/pnfs.c
> +++ b/fs/nfs/pnfs.c
> @@ -71,7 +71,7 @@ static spinlock_t pnfs_spinlock = __SPIN_LOCK_UNLOCKED(pnfs_spinlock);
> ?* pnfs_modules_tbl holds all pnfs modules
> ?*/
> ?static struct list_head ? ? ? ?pnfs_modules_tbl;
> -static struct kmem_cache *pnfs_cachep;
> +static struct kmem_cache *pnfs_layoutcommit_cachep;
> ?static mempool_t *pnfs_layoutcommit_mempool;
>
> ?static inline struct nfs4_layoutcommit_data *pnfs_layoutcommit_alloc(void)
> @@ -102,18 +102,16 @@ pnfs_initialize(void)
> ?{
> ? ? ? ?INIT_LIST_HEAD(&pnfs_modules_tbl);
>
> - ? ? ? pnfs_cachep = kmem_cache_create("nfs4_layoutcommit_data",
> + ? ? ? pnfs_layoutcommit_cachep = kmem_cache_create("nfs4_layoutcommit_data",
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?sizeof(struct nfs4_layoutcommit_data),
> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?0, SLAB_HWCACHE_ALIGN, NULL);
> - ? ? ? if (pnfs_cachep == NULL)
> + ? ? ? if (pnfs_layoutcommit_cachep == NULL)
> ? ? ? ? ? ? ? ?return -ENOMEM;
>
> - ? ? ? pnfs_layoutcommit_mempool = mempool_create(MIN_POOL_LC,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mempool_alloc_slab,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?mempool_free_slab,
> - ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?pnfs_cachep);
> + ? ? ? pnfs_layoutcommit_mempool = mempool_create_slab_pool(MIN_POOL_LC,
> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? pnfs_layoutcommit_cachep);
> ? ? ? ?if (pnfs_layoutcommit_mempool == NULL) {
> - ? ? ? ? ? ? ? kmem_cache_destroy(pnfs_cachep);
> + ? ? ? ? ? ? ? kmem_cache_destroy(pnfs_layoutcommit_cachep);
> ? ? ? ? ? ? ? ?return -ENOMEM;
> ? ? ? ?}
>
> @@ -124,7 +122,7 @@ pnfs_initialize(void)
> ?void pnfs_uninitialize(void)
> ?{
> ? ? ? ?mempool_destroy(pnfs_layoutcommit_mempool);
> - ? ? ? kmem_cache_destroy(pnfs_cachep);
> + ? ? ? kmem_cache_destroy(pnfs_layoutcommit_cachep);
> ?}
>
> ?/* search pnfs_modules_tbl for right pnfs module */
> --
> 1.7.2.2
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>