All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Snitzer <snitzer@redhat.com>
To: Eric Wheeler <dm-devel@lists.ewheeler.net>
Cc: dm-devel@redhat.com
Subject: Re: How can need dm use limits.max_hw_sectors from the bdev?
Date: Mon, 18 Jan 2016 10:56:53 -0500	[thread overview]
Message-ID: <20160118155652.GA2483@redhat.com> (raw)
In-Reply-To: <alpine.LRH.2.11.1601162216380.22808@mail.ewheeler.net>

On Sun, Jan 17 2016 at  1:34am -0500,
Eric Wheeler <dm-devel@lists.ewheeler.net> wrote:

> Hello all,
> 
> I'm writing a trivial dm target and hitting errors like this:
>    io too big device loop0 (2048 > 255)
> 
> which looks like the problem described here:
> 	https://bugzilla.kernel.org/show_bug.cgi?id=9401#c3
> 
> and is is consistent:
> 	cat /sys/block/loop0/queue/max_hw_sectors_kb 
> 	127
> 	# cat /sys/block/dm-4/queue/max_hw_sectors_kb 
> 	2147483647
> 
> By tracing from sysfs it looks like I need to do something like this when 
> called from the target constructor (dm_ctr_fn target_type.ctr) function:
> 
>     target->table->md->queue->limits.max_hw_sectors =
>         priv->dm_dev_bdev->bdev->bd_queue->limits.max_hw_sectors;
> 
> but I cannot because `struct md` and `struct mapped_device` are opaque
> which makes me think there is a better (correct) way to do this.  Is there a way
> to change my target device's max_hw_sectors value to 127?
> 
> Is there some other generic solution?

You'll first want to implement the .iterate_devices hook.  This alone
should enable DM core to leverage the block layer's blk_stack_limits()
infrastructure to stack up your top-level device's queue_limits.

And if you'd like to override your device's queue_limits beyond what is
stacked up from the underlying device(s) you can implement the .io_hints
hook in your target.

> Would late bio splitting solve this?

Maybe, if by solve this you mean: the block core won't error any more.
But you're better off stacking underlying devices' queue_limits like I
detailed above.

Mike

  reply	other threads:[~2016-01-18 15:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-17  6:34 How can need dm use limits.max_hw_sectors from the bdev? Eric Wheeler
2016-01-18 15:56 ` Mike Snitzer [this message]
2016-01-20  3:00   ` How can " Eric Wheeler

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=20160118155652.GA2483@redhat.com \
    --to=snitzer@redhat.com \
    --cc=dm-devel@lists.ewheeler.net \
    --cc=dm-devel@redhat.com \
    /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.