public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: Benny Halevy <bhalevy@panasas.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>,
	linux-scsi@vger.kernel.org, tomof@acm.org
Subject: Re: [PATCH v2] use dynamically allocated sense buffer
Date: Wed, 16 Jan 2008 14:35:50 +0200	[thread overview]
Message-ID: <478DFA26.2020706@panasas.com> (raw)
In-Reply-To: <1200410457.9273.10.camel@localhost.localdomain>

On Jan. 15, 2008, 17:20 +0200, James Bottomley <James.Bottomley@HansenPartnership.com> wrote:
> On Tue, 2008-01-15 at 18:23 +0900, FUJITA Tomonori wrote:
>> This is the second version of
>>
>> http://marc.info/?l=linux-scsi&m=119933628210006&w=2
>>
>> I gave up once, but I found that the performance loss is negligible
>> (within 1%) by using kmem_cache_alloc instead of mempool.
>>
>> I use scsi_debug with fake_rw=1 and disktest (DIO reads with 8
>> threads) again:
>>
>> scsi-misc (slub)         | 486.9 MB/s  IOPS 124652.9/s
>> dynamic sense buf (slub) | 483.2 MB/s  IOPS 123704.1/s
>>
>> scsi-misc (slab)         | 467.0 MB/s  IOPS 119544.3/s
>> dynamic sense buf (slab) | 468.7 MB/s  IOPS 119986.0/s
>>
>> The results are the averages of three runs with a server using two
>> dual-core 1.60 GHz Xeon processors with DDR2 memory.
>>
>>
>> I doubt think that someone will complain about the performance
>> regression due to this patch. In addition, unlike scsi_debug, the real
>> LLDs allocate the own data structure per scsi_cmnd so the performance
>> differences would be smaller (and with the real hard disk overheads).
>>
>> Here's the full results:
>>
>> http://www.kernel.org/pub/linux/kernel/people/tomo/sense/results.txt
> 
> Heh, that's one of those good news, bad news things.  Certainly good
> news for you.  The bad news for the rest of us is that you just
> implicated mempool in a performance problem  and since they're the core
> of the SCSI scatterlist allocations and sit at the heart of the critical
> path in SCSI, we have a potential performance issue in the whole of
> SCSI.

Looking at mempool's code this is peculiar as what seems to be its
critical path for alloc and free looks pretty harmless and lightweight.
Maybe an extra memory barrier, spin_{,un}lock_* and two extra function call
(one of them can be eliminated BTW if the order of arguments to the
mempool_{alloc,free}_t functions were the same as for kmem_cache_{alloc,free}).

Benny

> 
> James


  parent reply	other threads:[~2008-01-16 13:18 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-15  9:23 [PATCH v2] use dynamically allocated sense buffer FUJITA Tomonori
2008-01-15 13:56 ` Boaz Harrosh
2008-01-15 15:08   ` FUJITA Tomonori
2008-01-15 15:44     ` Boaz Harrosh
2008-01-16  1:18       ` FUJITA Tomonori
2008-01-15 15:20 ` James Bottomley
2008-01-15 15:48   ` Boaz Harrosh
2008-01-16 12:35   ` Benny Halevy [this message]
2008-01-17  9:13     ` FUJITA Tomonori
2008-01-17 15:58       ` James Bottomley
2008-01-17 20:56         ` FUJITA Tomonori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=478DFA26.2020706@panasas.com \
    --to=bhalevy@panasas.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=linux-scsi@vger.kernel.org \
    --cc=tomof@acm.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox