From: Sergey Popovich <popovich_sergei@mail.ua>
To: netfilter-devel@vger.kernel.org
Subject: Re: ipset: Proposed improvements to the kernel code
Date: Tue, 17 Mar 2015 06:46:28 +0200 [thread overview]
Message-ID: <1543409.17Fue4MmIJ@tuxracer> (raw)
In-Reply-To: <alpine.DEB.2.10.1503162026490.23975@blackhole.kfki.hu>
>
> Please rebase your patches against the ipset git tree: the development
> happens there and patches are submitted from the ipset git tree to
> nf-next. Also, do not forget to create numbered patches in the future.
> Thanks!
Hello Jozsef.
I known that main development of the ipset is done in ipset git tree.
However current it's state is far from my branch. I guess there is excessive
number of conflicts on rebase.
Currently I'm able to do less or more clear rebase to the ipset git tree
until commit 920ddfa09efbd72a0fe43251cd19bc2c27aa3662
(Introduce RCU in all set types instead of rwlock per set).
As I wrote earlier I have series of 170 patches, rebase may take more
time than development of the my series. But even that's not main concern.
I can't warranty that everything after applying small series will be
consistent at all, only after applying final series.
Maybe you are in interest of creating some branch on top of the
current ipset git tree to look at my work in the whole? Im not wery
happy with idea of rebasing my whole series to the ipset git tree
due to massive conflicts.
Sure there will be much less of work if you decide to merge branches.
Thanks for your interest for my series.
Sorry, forget to note in the original mail one category:
* Using memory cache to store set elements (i.e. kmem_cache).
----
Also I did not do deep analysis of the current ipset git tree RCU
implementation since patch introducing it looks monolitics, but I think
it has some number of problems.
For example quick overview of the current RCU implementation in the
ip_set_core.c gives no hint on how all further readers are prevented from
entering set before it is being destroyed (i.e. we can destroy core set data
structures with ip_set_destroy_set() while they being accessed by the
ip_set_test().
Also I don't think there is a good idea to modify cidr book keeping data
without any protection from the concurrent readers.
Using rcu_dereference_protected() with spin_is_locked() as condition
may be is not best choise, kernel has lockdep support for now, which
is more proven technique for locking issue debugging.
Using test_bit() in the fastpath loops to skip empty entries with bitmap
probably wastes more time than using ffs()/ffz().
Providing additionall variant callback ->uref() to handle references
seems confusing in aspects of set dump: we release set items
prior to dumping them. Furthermore due to netlink_dump_start()
nature (callbacks) there is no guarantee that we do not get
pointer to the new table after resize (for hashes) where all dumps
become inconsistent anyway. Running via callbacks implies no locking on the
entire ipset structures (checked with lockdep), only first call of the callback
may be locked with NFNL.
>
> I'm able to apply one single patch from your current series.
>
> Best regards,
> Jozsef
> -
> E-mail : kadlec@blackhole.kfki.hu, kadlecsik.jozsef@wigner.mta.hu
> PGP key : http://www.kfki.hu/~kadlec/pgp_public_key.txt
> Address : Wigner Research Centre for Physics, Hungarian Academy of Sciences
> H-1525 Budapest 114, POB. 49, Hungary
--
SP5474-RIPE
Sergey Popovich
next prev parent reply other threads:[~2015-03-17 4:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-16 13:29 ipset: Proposed improvements to the kernel code Sergey Popovich
2015-03-16 19:30 ` Jozsef Kadlecsik
2015-03-17 4:46 ` Sergey Popovich [this message]
2015-03-17 12:31 ` Jozsef Kadlecsik
2015-03-17 13:23 ` Sergey Popovich
2015-03-17 14:45 ` Jozsef Kadlecsik
2015-03-17 18:59 ` Sergey Popovich
2015-03-18 19:59 ` Jozsef Kadlecsik
2015-03-25 14:54 ` Sergey Popovich
2015-03-25 16:05 ` Pablo Neira Ayuso
2015-03-25 16:11 ` Sergey Popovich
2015-03-26 11:26 ` Pablo Neira Ayuso
2015-03-26 22:10 ` Jozsef Kadlecsik
2015-03-27 7:41 ` Sergey Popovich
2015-03-28 20:44 ` Jozsef Kadlecsik
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=1543409.17Fue4MmIJ@tuxracer \
--to=popovich_sergei@mail.ua \
--cc=netfilter-devel@vger.kernel.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;
as well as URLs for NNTP newsgroup(s).