[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150121120941.GX3012@acer.localdomain>
Date: Wed, 21 Jan 2015 12:09:41 +0000
From: Patrick McHardy <kaber@...sh.net>
To: Thomas Graf <tgraf@...g.ch>
Cc: Herbert Xu <herbert@...dor.apana.org.au>, davem@...emloft.net,
paulmck@...ux.vnet.ibm.com, ying.xue@...driver.com,
netdev@...r.kernel.org, netfilter-devel@...r.kernel.org
Subject: Re: [PATCH 3/3] netlink: Lock out table resizes while dumping
Netlink sockets
On 21.01, Thomas Graf wrote:
> On 01/21/15 at 11:59am, Patrick McHardy wrote:
> > On 21.01, Thomas Graf wrote:
> > > On 01/21/15 at 10:40am, Patrick McHardy wrote:
> > > > An automatic restart handles this well. Userspace always had to
> > > > expect duplicates.
> > >
> > > Maybe I don't understand the restart yet. How do you restart if the
> > > dump was already started and the user has read part of the dump?
> >
> > You use the mutex to prevent concurrent resizes and dumps, for dumps
> > that have left the kernel you simply reset the iterator state after
> > a resize operation.
>
> I see, so we possibly see a lot of duplicates but we will never miss
> any entries.
>
> So in summary we do:
>
> 2) We allow rhashtable users to opt in to Herbert's consistent walker
> relying on the use of an additional bit.
>
> 2) If user supports NLM_F_DUMP_INTR we block out resizes during
> message construction and set NLM_F_DUMP_INTR if a resize/rehash
> interrupted us while the user read.
>
> 3) If (1) and (2) are not available we do (2) but restart the dump
> on interruption thus causing duplicates but never missing any
> entries.
>
> I think this offers good flexibility for new users and compatibility
> for existing users.
Yep, sounds good to me.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists