From: Sergei Zviagintsev <sergei@s15v.net>
To: David Herrmann <dh.herrmann@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Daniel Mack <daniel@zonque.org>,
David Herrmann <dh.herrmann@googlemail.com>,
Djalal Harouni <tixxdz@opendz.org>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 05/44] kdbus: Add comment on merging free pool slices
Date: Fri, 9 Oct 2015 21:11:33 +0300 [thread overview]
Message-ID: <20151009181133.GG2189@localhost.localdomain> (raw)
In-Reply-To: <CANq1E4R7830444KFbQQ3DZXcNWYpmVm-708Q7jbj82KmC=jXcQ@mail.gmail.com>
Hi,
On Thu, Oct 08, 2015 at 03:50:46PM +0200, David Herrmann wrote:
> Hi
>
> On Thu, Oct 8, 2015 at 1:31 PM, Sergei Zviagintsev <sergei@s15v.net> wrote:
> > Add comment on why we remove the same slice from free slices tree and
> > then add it back again when merging the slice to be released with
> > previous free slice.
> >
> > Signed-off-by: Sergei Zviagintsev <sergei@s15v.net>
> > ---
> > ipc/kdbus/pool.c | 6 ++++++
> > 1 file changed, 6 insertions(+)
> >
> > diff --git a/ipc/kdbus/pool.c b/ipc/kdbus/pool.c
> > index 84afe96fbc22..c26ef963d8d1 100644
> > --- a/ipc/kdbus/pool.c
> > +++ b/ipc/kdbus/pool.c
> > @@ -304,6 +304,12 @@ static void __kdbus_pool_slice_release(struct kdbus_pool_slice *slice)
> > s = list_entry(slice->entry.prev,
> > struct kdbus_pool_slice, entry);
> > if (s->free) {
> > + /*
> > + * As size of slice increases after merge and free
> > + * slices tree is ordered by slice size, we have to
> > + * remove the slice from free slices tree and then add
> > + * it again to keep the tree balanced.
> > + */
>
> Mhh, isn't this obvious? "slices_free" is ordered by s->size, so a
> change of the key requires a re-insert. If you disagree, maybe keep it
> simple:
>
> /* s->size changed, re-insert slice in rbtree */
It wasn't obvious for me from the first sight (but don't tell anyone),
so I decided that some words on why we're doing re-insert would be
helpful. It's up to you to decide whether it would be useful for the
others. BTW, I find your shorter variant better.
>
> Thanks
> David
>
> > rb_erase(&s->rb_node, &pool->slices_free);
> > list_del(&slice->entry);
> > s->size += slice->size;
> > --
> > 1.8.3.1
> >
next prev parent reply other threads:[~2015-10-09 18:11 UTC|newest]
Thread overview: 74+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-08 11:31 [PATCH 00/44] kdbus cleanups Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 01/44] Documentation/kdbus: Document new name registry flags Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 02/44] uapi: kdbus.h: Kernel-doc fixes Sergei Zviagintsev
2015-10-08 13:42 ` David Herrmann
2015-10-08 11:31 ` [PATCH 03/44] kdbus: Kernel-docs and comments trivial fixes Sergei Zviagintsev
2015-10-08 13:46 ` David Herrmann
2015-10-08 11:31 ` [PATCH 04/44] kdbus: Update kernel-doc for struct kdbus_pool Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 05/44] kdbus: Add comment on merging free pool slices Sergei Zviagintsev
2015-10-08 13:50 ` David Herrmann
2015-10-09 18:11 ` Sergei Zviagintsev [this message]
2015-10-08 11:31 ` [PATCH 06/44] kdbus: Fix kernel-doc for struct kdbus_gaps Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 07/44] kdbus: Fix comment on translation of caps between namespaces Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 08/44] kdbus: Rename var in kdbus_meta_export_caps() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 09/44] kdbus: Remove unused KDBUS_MSG_MAX_SIZE constant Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 10/44] kdbus: Use conditional operator Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 11/44] kdbus: Cosmetic fix of kdbus_name_is_valid() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 12/44] kdbus: Use conventional list macros in __kdbus_pool_slice_release() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 13/44] kdbus: Use list_next_entry() in kdbus_queue_entry_unlink() Sergei Zviagintsev
2015-10-08 14:09 ` David Herrmann
2015-10-08 11:31 ` [PATCH 14/44] kdbus: Simplify expression in kdbus_get_memfd() Sergei Zviagintsev
2015-10-08 14:21 ` David Herrmann
2015-10-08 11:31 ` [PATCH 15/44] kdbus: Simplify bitwise expression in kdbus_meta_get_mask() Sergei Zviagintsev
2015-10-08 14:24 ` David Herrmann
2015-10-09 17:50 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 16/44] kdbus: Drop redundant code from kdbus_name_acquire() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 17/44] kdbus: Drop duplicated code from kdbus_pool_slice_alloc() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 18/44] kdbus: Add var initialization to kdbus_conn_entry_insert() Sergei Zviagintsev
2015-10-08 14:28 ` David Herrmann
2015-10-09 17:52 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 19/44] kdbus: Drop useless initialization from kdbus_conn_reply() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 20/44] kdbus: Drop useless initialization from kdbus_cmd_hello() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 21/44] kdbus: Cleanup tests in kdbus_cmd_send() Sergei Zviagintsev
2015-10-08 14:30 ` David Herrmann
2015-10-09 18:07 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 22/44] kdbus: Cleanup error path in kdbus_staging_new_user() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 23/44] kdbus: Cleanup kdbus_conn_call() Sergei Zviagintsev
2015-10-08 14:32 ` David Herrmann
2015-10-09 18:15 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 24/44] kdbus: Cleanup kdbus_conn_unicast() Sergei Zviagintsev
2015-10-08 14:34 ` David Herrmann
2015-10-09 18:32 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 25/44] kdbus: Cleanup kdbus_cmd_conn_info() Sergei Zviagintsev
2015-10-08 14:38 ` David Herrmann
2015-10-09 18:45 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 26/44] kdbus: Cleanup kdbus_pin_dst() Sergei Zviagintsev
2015-10-08 14:40 ` David Herrmann
2015-10-09 18:46 ` Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 27/44] kdbus: Cleanup kdbus_conn_new() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 28/44] kdbus: Cleanup kdbus_queue_entry_new() Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 29/44] kdbus: Improve tests on incrementing quota Sergei Zviagintsev
2015-10-08 11:31 ` [PATCH 30/44] kdbus: Cleanup kdbus_meta_proc_mask() Sergei Zviagintsev
2015-10-08 14:47 ` David Herrmann
2015-10-08 11:32 ` [PATCH 31/44] kdbus: Cleanup kdbus_conn_move_messages() Sergei Zviagintsev
2015-10-08 14:50 ` David Herrmann
2015-10-09 18:47 ` Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 32/44] kdbus: Remove duplicated code from kdbus_conn_lock2() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 33/44] kdbus: Improve kdbus_staging_reserve() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 34/44] kdbus: Improve kdbus_conn_entry_sync_attach() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 35/44] kdbus: Drop goto from kdbus_queue_entry_link() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 36/44] kdbus: Improve kdbus_name_release() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 37/44] kdbus: Fix error path in kdbus_meta_proc_collect_cgroup() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 38/44] kdbus: Fix error path in kdbus_user_lookup() Sergei Zviagintsev
2015-10-08 15:06 ` David Herrmann
2015-10-09 18:48 ` Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 39/44] kdbus: Cleanup kdbus_user_lookup() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 40/44] kdbus: Cleanup kdbus_item_validate_name() Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 41/44] kdbus: Fix memfd install algorithm Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 42/44] kdbus: Check if fd is allocated before trying to free it Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 43/44] kdbus: Give up on failed fd allocation Sergei Zviagintsev
2015-10-08 15:14 ` David Herrmann
2015-10-09 18:49 ` Sergei Zviagintsev
2015-10-08 11:32 ` [PATCH 44/44] kdbus: Cleanup kdbus_gaps_install() Sergei Zviagintsev
2015-10-08 15:20 ` [PATCH 00/44] kdbus cleanups David Herrmann
2015-10-09 7:28 ` Sergei Zviagintsev
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=20151009181133.GG2189@localhost.localdomain \
--to=sergei@s15v.net \
--cc=daniel@zonque.org \
--cc=dh.herrmann@gmail.com \
--cc=dh.herrmann@googlemail.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tixxdz@opendz.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).