From: Richard Weinberger <richard@nod.at>
To: Christoph Hellwig <hch@lst.de>
Cc: axboe@kernel.dk, linux-block@vger.kernel.org,
linux-um@lists.infradead.org, anton.ivanov@cambridgegreys.com,
dwalter@google.com
Subject: Re: [PATCH, RFC] ubd: remove use of blk_rq_map_sg
Date: Mon, 15 Oct 2018 22:42:47 +0200 [thread overview]
Message-ID: <1771273.Wvapsmo5cm@blindfold> (raw)
In-Reply-To: <20263939.GgfHUqOn1T@blindfold>
Am Montag, 15. Oktober 2018, 21:17:46 CEST schrieb Richard Weinberger:
> Am Montag, 15. Oktober 2018, 10:45:41 CEST schrieb Christoph Hellwig:
> > On Mon, Oct 15, 2018 at 10:40:06AM +0200, Richard Weinberger wrote:
> > > hm, this breaks UML.
> > > Every filesystem fails to mount.
> > >
> > > I did some very rough tests, it seems that the driver fails to read
> > > data correctly as soon the upper layer tries to get more than 4096 bytes
> > > at once out of the block device.
> > >
> > > IOW:
> > > dd if=/dev/ubda bs=4096 count=1 skip=0 2>/dev/null| md5sum -
> > > is good.
> > > As soon I set bs to something greater it returns garbage.
> > >
> > > Later this day I might have some cycles left to debug further.
> >
> > It probably needs this on top:
>
> Sadly not. I'm checking now what exactly is broken.
I take this back. Christoph's fixup makes reading work.
The previous version corrupted my test block device in interesting ways
and confused all tests.
But the removal of blk_rq_map_sg() still has issues.
Now the device blocks endless upon flush.
:/ # cat /proc/251/stack
[<0>] __switch_to+0x56/0x85
[<0>] __schedule+0x427/0x472
[<0>] schedule+0x7c/0x95
[<0>] schedule_timeout+0x2b/0x1d2
[<0>] io_schedule_timeout+0x2b/0x48
[<0>] wait_for_common_io.constprop.2+0xdd/0x154
[<0>] wait_for_completion_io+0x1a/0x1c
[<0>] submit_bio_wait+0x5b/0x74
[<0>] blkdev_issue_flush+0x95/0xc3
[<0>] jbd2_journal_recover+0xe4/0xf6
[<0>] jbd2_journal_load+0x183/0x3b2
[<0>] ext4_fill_super+0x23e0/0x3602
[<0>] mount_bdev+0x18f/0x1f8
[<0>] ext4_mount+0x1a/0x1c
[<0>] mount_fs+0x13/0xf6
[<0>] vfs_kern_mount+0x78/0x139
[<0>] do_mount+0x874/0xb48
[<0>] ksys_mount+0x99/0xc0
[<0>] sys_mount+0x10/0x14
[<0>] handle_syscall+0x79/0xa7
[<0>] userspace+0x487/0x514
[<0>] fork_handler+0x94/0x96
[<0>] 0xffffffffffffffff
Just checked, the number of calls to blk_mq_start_request()
matches the number of calls to __blk_mq_end_request().
So I don't really get what is being waited on.
Thanks,
//richard
WARNING: multiple messages have this Message-ID (diff)
From: Richard Weinberger <richard@nod.at>
To: Christoph Hellwig <hch@lst.de>
Cc: axboe@kernel.dk, linux-block@vger.kernel.org,
linux-um@lists.infradead.org, dwalter@google.com,
anton.ivanov@cambridgegreys.com
Subject: Re: [PATCH, RFC] ubd: remove use of blk_rq_map_sg
Date: Mon, 15 Oct 2018 22:42:47 +0200 [thread overview]
Message-ID: <1771273.Wvapsmo5cm@blindfold> (raw)
In-Reply-To: <20263939.GgfHUqOn1T@blindfold>
Am Montag, 15. Oktober 2018, 21:17:46 CEST schrieb Richard Weinberger:
> Am Montag, 15. Oktober 2018, 10:45:41 CEST schrieb Christoph Hellwig:
> > On Mon, Oct 15, 2018 at 10:40:06AM +0200, Richard Weinberger wrote:
> > > hm, this breaks UML.
> > > Every filesystem fails to mount.
> > >
> > > I did some very rough tests, it seems that the driver fails to read
> > > data correctly as soon the upper layer tries to get more than 4096 bytes
> > > at once out of the block device.
> > >
> > > IOW:
> > > dd if=/dev/ubda bs=4096 count=1 skip=0 2>/dev/null| md5sum -
> > > is good.
> > > As soon I set bs to something greater it returns garbage.
> > >
> > > Later this day I might have some cycles left to debug further.
> >
> > It probably needs this on top:
>
> Sadly not. I'm checking now what exactly is broken.
I take this back. Christoph's fixup makes reading work.
The previous version corrupted my test block device in interesting ways
and confused all tests.
But the removal of blk_rq_map_sg() still has issues.
Now the device blocks endless upon flush.
:/ # cat /proc/251/stack
[<0>] __switch_to+0x56/0x85
[<0>] __schedule+0x427/0x472
[<0>] schedule+0x7c/0x95
[<0>] schedule_timeout+0x2b/0x1d2
[<0>] io_schedule_timeout+0x2b/0x48
[<0>] wait_for_common_io.constprop.2+0xdd/0x154
[<0>] wait_for_completion_io+0x1a/0x1c
[<0>] submit_bio_wait+0x5b/0x74
[<0>] blkdev_issue_flush+0x95/0xc3
[<0>] jbd2_journal_recover+0xe4/0xf6
[<0>] jbd2_journal_load+0x183/0x3b2
[<0>] ext4_fill_super+0x23e0/0x3602
[<0>] mount_bdev+0x18f/0x1f8
[<0>] ext4_mount+0x1a/0x1c
[<0>] mount_fs+0x13/0xf6
[<0>] vfs_kern_mount+0x78/0x139
[<0>] do_mount+0x874/0xb48
[<0>] ksys_mount+0x99/0xc0
[<0>] sys_mount+0x10/0x14
[<0>] handle_syscall+0x79/0xa7
[<0>] userspace+0x487/0x514
[<0>] fork_handler+0x94/0x96
[<0>] 0xffffffffffffffff
Just checked, the number of calls to blk_mq_start_request()
matches the number of calls to __blk_mq_end_request().
So I don't really get what is being waited on.
Thanks,
//richard
_______________________________________________
linux-um mailing list
linux-um@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-um
next prev parent reply other threads:[~2018-10-15 20:42 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-15 6:56 [PATCH, RFC] ubd: remove use of blk_rq_map_sg Christoph Hellwig
2018-10-15 6:56 ` Christoph Hellwig
2018-10-15 8:40 ` Richard Weinberger
2018-10-15 8:40 ` Richard Weinberger
2018-10-15 8:45 ` Christoph Hellwig
2018-10-15 8:45 ` Christoph Hellwig
2018-10-15 19:17 ` Richard Weinberger
2018-10-15 19:17 ` Richard Weinberger
2018-10-15 20:42 ` Richard Weinberger [this message]
2018-10-15 20:42 ` Richard Weinberger
2018-10-15 20:55 ` Christoph Hellwig
2018-10-15 20:55 ` Christoph Hellwig
2018-10-15 21:46 ` Richard Weinberger
2018-10-15 21:46 ` Richard Weinberger
2018-10-15 22:04 ` Jens Axboe
2018-10-15 22:04 ` Jens Axboe
2018-10-15 22:44 ` Richard Weinberger
2018-10-15 22:44 ` Richard Weinberger
2018-10-16 2:19 ` Jens Axboe
2018-10-16 2:19 ` Jens Axboe
2018-10-16 8:38 ` Richard Weinberger
2018-10-16 8:38 ` Richard Weinberger
2018-10-16 14:26 ` Jens Axboe
2018-10-16 14:26 ` Jens Axboe
2018-10-17 6:21 ` Christoph Hellwig
2018-10-17 6:21 ` Christoph Hellwig
2018-10-18 21:04 ` Richard Weinberger
2018-10-18 21:04 ` Richard Weinberger
2018-10-15 8:46 ` Anton Ivanov
2018-10-16 22:43 ` Richard Weinberger
2018-10-16 22:43 ` Richard Weinberger
2018-10-17 6:14 ` Christoph Hellwig
2018-10-17 6:14 ` Christoph Hellwig
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=1771273.Wvapsmo5cm@blindfold \
--to=richard@nod.at \
--cc=anton.ivanov@cambridgegreys.com \
--cc=axboe@kernel.dk \
--cc=dwalter@google.com \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-um@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.