Re: [PATCH v2 0/8] Add rcu_sync infrastructure to avoid _expedited() in percpu-rwsem

From: Oleg Nesterov
Date: Wed Aug 26 2015 - 08:19:18 EST


On 08/25, Paul E. McKenney wrote:
>
> On Mon, Aug 24, 2015 at 05:34:31PM +0200, Oleg Nesterov wrote:
> >
> > I booted the kernel with the additional patch below, and nothing bad has
> > happened, it continues to print
> >
> > Writes: Total: 2 Max/Min: 0/0 Fail: 0
> > Reads : Total: 2 Max/Min: 0/0 Fail: 0
> >
> > However, I do not know what this code actually does, so currently I have
> > no idea if this test makes any sense for percpu_rw_semaphore.
>
> Actually, unless I am really confused, that does not look good...
>
> I would expect something like this, from a run with rwsem_lock:
>
> [ 16.336057] Writes: Total: 473 Max/Min: 0/0 Fail: 0
> [ 16.337615] Reads : Total: 219 Max/Min: 0/0 Fail: 0
> [ 31.338152] Writes: Total: 959 Max/Min: 0/0 Fail: 0
> [ 31.339114] Reads : Total: 437 Max/Min: 0/0 Fail: 0
> [ 46.340167] Writes: Total: 1365 Max/Min: 0/0 Fail: 0
> [ 46.341952] Reads : Total: 653 Max/Min: 0/0 Fail: 0
> [ 61.343027] Writes: Total: 1795 Max/Min: 0/0 Fail: 0
> [ 61.343968] Reads : Total: 865 Max/Min: 0/0 Fail: 0
> [ 76.344034] Writes: Total: 2220 Max/Min: 0/0 Fail: 0
> [ 76.345243] Reads : Total: 1071 Max/Min: 0/0 Fail: 0
>
> The "Total" should increase for writes and for reads -- if you are
> just seeing "Total: 2" over and over, that indicates that either
> the torture test or rcu_sync got stuck somewhere.

Hmm. I reverted the change in locktorture.c , and I see the same
numbers when I boot the kernel with

locktorture.verbose=1 locktorture.torture_type=rwsem_lock

parameters.

Writes: Total: 2 Max/Min: 0/0 Fail: 0
Reads : Total: 2 Max/Min: 0/0 Fail: 0

"Total" doesn't grow. Looks like something is wrong with locktorture.
I'll try to re-check...

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/