From: Keir Fraser <keir.xen@gmail.com>
To: Matt Wilson <msw@linux.com>
Cc: "Felipe Franciosi" <felipe.franciosi@citrix.com>,
"Anthony Liguori" <aliguori@amazon.com>,
"Andrew Cooper" <andrew.cooper3@citrix.com>,
"David Vrabel" <david.vrabel@citrix.com>,
"Jan Beulich" <JBeulich@suse.com>,
xen-devel@lists.xenproject.org, "Matt Wilson" <msw@amazon.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [RFC PATCH 2/2] gnttab: refactor locking for better scalability
Date: Tue, 12 Nov 2013 08:07:03 +0000 [thread overview]
Message-ID: <CEA79227.64C7F%keir.xen@gmail.com> (raw)
In-Reply-To: <20131112071857.GA11872@u109add4315675089e695.ant.amazon.com>
On 12/11/2013 07:18, "Matt Wilson" <msw@linux.com> wrote:
>> Is there any concern about writer starvation here? I know our spinlocks
>> aren't 'fair' but our rwlocks are guaranteed to starve out writers if there
>> is a steady continuous stream of readers. Perhaps we should write-bias our
>> rwlock, or at least make that an option. We could get fancier but would
>> probably hurt performance.
>
> Yes, I'm a little concerned about writer starvation. But so far even
> in the presence of very frequent readers it seems like the infrequent
> writers are able to get the lock when they need to. However, I've not
> tested the iommu=strict path yet. I'm thinking that in that case
> there's just going to be frequent writers, so there's less risk of
> readers starving writers. For what it's worth, when mapcount() gets in
> the picture with persistent grants, I'd expect to see some pretty
> significant performance degradation for map/unmap operations. This was
> also observed in [1] under different circumstances.
The average case isn't the only concern here, but also the worst case, which
could maybe tie up a CPU for unbounded time. Could a malicious guest set up
such a workload? I'm just thinking we don't want to end up with a DoS XSA on
this down the line. :)
> But right now I'm more curious about cache line bouncing between all
> the readers. I've not done any study of inter-arrival times for
> typical workloads (much less some more extreme workloads like we've
> been testing), but lock profiling of grant table operations when a
> spinlock was used showed some pretty long hold times, which should
> translate fairly well to decent rwlock performance. I'm by no means an
> expert in this area so I'm eager to hear the thoughts of others.
In the read-heavy case the only improvement would be with the old
Linux-style biglock (spinlock per CPU; writers must take all spinlocks), or
working out a lock-free scheme for readers (perhaps making use of RCU).
-- Keir
> I should also mention that some of the improvement I mentioned from
> 3,000 MB/s to 3,600 MB/s was due to avoiding the m2p override spinlock
> in dom0.
next prev parent reply other threads:[~2013-11-12 8:07 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-12 2:03 [RFC PATCH 0/2] gnttab: refactor locking for better scalability Matt Wilson
2013-11-12 2:03 ` [RFC PATCH 1/2] gnttab: lock the local grant table earlier in __gnttab_unmap_common() Matt Wilson
2013-11-12 2:03 ` [RFC PATCH 2/2] gnttab: refactor locking for better scalability Matt Wilson
2013-11-12 5:37 ` Keir Fraser
2013-11-12 7:18 ` Matt Wilson
2013-11-12 8:07 ` Keir Fraser [this message]
2013-11-12 9:18 ` Jan Beulich
2013-11-12 13:42 ` Keir Fraser
2013-11-12 13:58 ` Keir Fraser
2013-11-12 14:11 ` Jan Beulich
2013-11-12 14:24 ` Keir Fraser
2013-11-12 15:09 ` Felipe Franciosi
2014-06-20 20:54 ` Konrad Rzeszutek Wilk
2014-06-20 21:18 ` Matt Wilson
2013-11-12 19:06 ` Matt Wilson
2013-11-12 14:52 ` Konrad Rzeszutek Wilk
2013-11-12 15:04 ` David Vrabel
2013-11-12 16:53 ` Anthony Liguori
2013-11-12 9:26 ` Jan Beulich
2013-11-12 17:58 ` Matt Wilson
2013-11-13 7:39 ` Jan Beulich
-- strict thread matches above, loose matches on Subject: below --
2014-06-21 0:13 Konrad Rzeszutek Wilk
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=CEA79227.64C7F%keir.xen@gmail.com \
--to=keir.xen@gmail.com \
--cc=JBeulich@suse.com \
--cc=aliguori@amazon.com \
--cc=andrew.cooper3@citrix.com \
--cc=david.vrabel@citrix.com \
--cc=felipe.franciosi@citrix.com \
--cc=msw@amazon.com \
--cc=msw@linux.com \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.