Re: [git pull] vfs part 2

Andrey Ryabinin
2015-07-01T11:25:56Z

On 07/01/2015 11:55 AM, Al Viro wrote:
> On Wed, Jul 01, 2015 at 11:41:04AM +0300, Andrey Ryabinin wrote:
>> On 07/01/2015 11:27 AM, Al Viro wrote:
>>>
>>> Could you check if 3.19 was getting anything similar? I.e. in
>>> p9_client_write() there add
>>> if (count > rsize)
>>> printk(KERN_ERR "bogus RWRITE: %d -> %d\n", rsize, count);
>>> just before
>>> p9_debug(P9_DEBUG_9P, "<<< RWRITE count %d\n", count);
>>> and see if that triggers...
>>>
>>
>> Yeah, the same thing:
>> [ 125.962374] bogus RWRITE: 27 -> 4096
>> [ 207.587632] bogus RWRITE: 27 -> 4096
>> [ 215.055627] bogus RWRITE: 27 -> 4096
>> [ 235.583138] bogus RWRITE: 27 -> 4096
>> [ 245.749174] bogus RWRITE: 27 -> 4096
>> [ 246.759270] bogus RWRITE: 27 -> 4096
>> [ 248.020787] bogus RWRITE: 27 -> 4096
>
> Hrm... Could you add (int)req->rc->id, (int)req->rc->tag and (int)req->tc->tag
> to that printk (on either kernel, the problem's apparently not new)?
>

I've attached gdb instead.
So, after message "bogus RWRITE: 93 -> 4096"
I've got this:

(gdb) p *req->rc
$11 = {size = 11, id = 119 'w', tag = 3, offset = 11, capacity = 8192, sdata = 0xffff8802347b8020 "\v"}
(gdb) p *req->tc
$12 = {size = 116, id = 118 'v', tag = 3, offset = 0, capacity = 8192, sdata = 0xffff88023479c020 "t"}

> The question is whether we are mismatching replies, sending bogus requests or
> if it's really the server sending bogus replies. Which qemu version are
> you using, BTW?
>

As I said before qemu's version is 2.2.1.

So, I've decided to try kvmtool. It took a bit longer to trigger, but still:
[ 466.552432] bogus RWRITE: 57 -> 8168
[ 969.317058] bogus RWRITE: 27 -> 8168