Re: more barriers: Re: [PATCH 1/2] printk: add lockless buffer

2020-03-13 Thread John Ogness
Hi, This is quite a long response. I can summarize here: - Several new memory barrier pairs were identified. - The placement of a memory barrier was incorrect. There are now quite a few changes queued up for v2. I will try to get this posted soon. Also, I believe we've now identified the

Re: more barriers: Re: [PATCH 1/2] printk: add lockless buffer

2020-03-04 Thread Petr Mladek
On Thu 2020-02-27 13:04:09, John Ogness wrote: > On 2020-02-21, Petr Mladek wrote: > > If I get it correctly, the used cmpxchg_relaxed() variants does not > > provide full barriers. They are just able to prevent parallel > > manipulation of the modified variable. > > Correct. > > I purposely

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-04 Thread Petr Mladek
On Tue 2020-03-03 16:42:07, John Ogness wrote: > On 2020-03-03, Petr Mladek wrote: > >> diff --git a/kernel/printk/printk_ringbuffer.c > >> b/kernel/printk/printk_ringbuffer.c > >> new file mode 100644 > >> index ..796257f226ee > >> --- /dev/null > >> +++

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-04 Thread Petr Mladek
On Mon 2020-03-02 14:43:41, John Ogness wrote: > On 2020-03-02, Petr Mladek wrote: > diff --git a/kernel/printk/printk_ringbuffer.c > b/kernel/printk/printk_ringbuffer.c > new file mode 100644 > index ..796257f226ee > --- /dev/null > +++

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-03 Thread John Ogness
On 2020-03-03, Petr Mladek wrote: >> diff --git a/kernel/printk/printk_ringbuffer.c >> b/kernel/printk/printk_ringbuffer.c >> new file mode 100644 >> index ..796257f226ee >> --- /dev/null >> +++ b/kernel/printk/printk_ringbuffer.c >> +/* >> + * Read

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-03 Thread Petr Mladek
On Mon 2020-03-02 14:43:41, John Ogness wrote: > On 2020-03-02, Petr Mladek wrote: > diff --git a/kernel/printk/printk_ringbuffer.c > b/kernel/printk/printk_ringbuffer.c > new file mode 100644 > index ..796257f226ee > --- /dev/null > +++

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-02 Thread John Ogness
On 2020-03-02, Petr Mladek wrote: diff --git a/kernel/printk/printk_ringbuffer.c b/kernel/printk/printk_ringbuffer.c new file mode 100644 index ..796257f226ee --- /dev/null +++ b/kernel/printk/printk_ringbuffer.c +/* + * Read the record @id and

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-02 Thread Petr Mladek
On Mon 2020-03-02 11:38:42, John Ogness wrote: > On 2020-02-21, Petr Mladek wrote: > >> diff --git a/kernel/printk/printk_ringbuffer.c > >> b/kernel/printk/printk_ringbuffer.c > >> new file mode 100644 > >> index ..796257f226ee > >> --- /dev/null > >> +++

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-02 Thread Joe Perches
On Mon, 2020-03-02 at 11:38 +0100, John Ogness wrote: > On 2020-02-21, Petr Mladek wrote: > > > diff --git a/kernel/printk/printk_ringbuffer.c > > > b/kernel/printk/printk_ringbuffer.c [] > > > +static struct prb_data_block *to_block(struct prb_data_ring *data_ring, > > > +

Re: misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-03-02 Thread John Ogness
On 2020-02-21, Petr Mladek wrote: >> diff --git a/kernel/printk/printk_ringbuffer.c >> b/kernel/printk/printk_ringbuffer.c >> new file mode 100644 >> index ..796257f226ee >> --- /dev/null >> +++ b/kernel/printk/printk_ringbuffer.c >> +static struct prb_data_block *to_block(struct

Re: more barriers: Re: [PATCH 1/2] printk: add lockless buffer

2020-02-27 Thread John Ogness
On 2020-02-21, Petr Mladek wrote: > If I get it correctly, the used cmpxchg_relaxed() variants does not > provide full barriers. They are just able to prevent parallel > manipulation of the modified variable. Correct. I purposely avoided the full barriers of a successful cmpxchg() so that we

misc nits Re: [PATCH 1/2] printk: add lockless buffer

2020-02-21 Thread Petr Mladek
Hi, there are few more small things that catched my eyes during review. They are from the nits deparment. On Tue 2020-01-28 17:25:47, John Ogness wrote: > Introduce a multi-reader multi-writer lockless ringbuffer for storing > the kernel log messages. Readers and writers may use their API from >

more barriers: Re: [PATCH 1/2] printk: add lockless buffer

2020-02-21 Thread Petr Mladek
Hi, the new full barrier in desc_reserve() made me to think more about the existing ones. If I get it correctly, the used cmpxchg_relaxed() variants does not provide full barriers. They are just able to prevent parallel manipulation of the modified variable. Because of this, I think that we

Re: [PATCH 1/2] printk: add lockless buffer

2020-01-28 Thread Steven Rostedt
On Tue, 28 Jan 2020 17:25:47 +0106 John Ogness wrote: > diff --git a/kernel/printk/printk_ringbuffer.c > b/kernel/printk/printk_ringbuffer.c > new file mode 100644 > index ..796257f226ee > --- /dev/null > +++ b/kernel/printk/printk_ringbuffer.c > @@ -0,0 +1,1370 @@ > +//