All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boaz Harrosh <boaz@plexistor.com>
To: Jens Axboe <axboe@fb.com>, Matthew Wilcox <willy@linux.intel.com>,
	Dmitry Monakhov <dmonakhov@openvz.org>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>
Subject: [PATCH 4/4 v4] brd: Request from fdisk 4k alignment
Date: Wed, 07 Jan 2015 18:09:38 +0200	[thread overview]
Message-ID: <54AD5A42.5040404@plexistor.com> (raw)
In-Reply-To: <54AD5893.9040701@plexistor.com>

From: Boaz Harrosh <boaz@plexistor.com>

Because of the direct_access() API which returns a PFN. partitions
better start on 4K boundary, else offset ZERO of a partition will
not be aligned and blk_direct_access() will fail the call.

By setting blk_queue_physical_block_size(PAGE_SIZE) we can communicate
this to fdisk and friends.

The call to blk_queue_physical_block_size() is harmless and will
not affect the Kernel behavior in any way. It is only for
communication to user-mode.

before this patch running fdisk on a default size brd of 4M
the first sector offered is 34 (BAD), but after this patch it
will be 40, ie 8 sectors aligned. Also when entering some random
partition sizes the next partition-start sector is offered 8 sectors
aligned after this patch. (Please note that with fdisk the user
can still enter bad values, only the offered default values will
be correct)

Note that with bdev-size > 4M fdisk will try to align on a 1M
boundary (above first-sector will be 2048), in any case.

CC: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Boaz Harrosh <boaz@plexistor.com>
---
 drivers/block/brd.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/block/brd.c b/drivers/block/brd.c
index a7463c959..c01b921 100644
--- a/drivers/block/brd.c
+++ b/drivers/block/brd.c
@@ -486,10 +486,19 @@ static struct brd_device *brd_alloc(int i)
 	brd->brd_queue = blk_alloc_queue(GFP_KERNEL);
 	if (!brd->brd_queue)
 		goto out_free_dev;
+
 	blk_queue_make_request(brd->brd_queue, brd_make_request);
 	blk_queue_max_hw_sectors(brd->brd_queue, 1024);
 	blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY);
 
+	/* This is so fdisk will align partitions on 4k, because of
+	 * direct_access API needing 4k alignment, returning a PFN
+	 * (This is only a problem on very small devices <= 4M,
+	 *  otherwise fdisk will align on 1M. Regardless this call
+	 *  is harmless)
+	 */
+	blk_queue_physical_block_size(brd->brd_queue, PAGE_SIZE);
+
 	brd->brd_queue->limits.discard_granularity = PAGE_SIZE;
 	brd->brd_queue->limits.max_discard_sectors = UINT_MAX;
 	brd->brd_queue->limits.discard_zeroes_data = 1;
-- 
1.9.3



  parent reply	other threads:[~2015-01-07 16:09 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-07 16:02 [PATCHSET 0/4 v4] brd: partition fixes Boaz Harrosh
2015-01-07 16:04 ` [PATCH 1/4 v4] axonram: Fix bug in direct_access Boaz Harrosh
2015-01-07 16:05 ` [PATCH 2/4 v4] block: Change direct_access calling convention Boaz Harrosh
2015-01-07 16:07 ` [PATCH 3/4 v4] brd: Fix all partitions BUGs Boaz Harrosh
2015-01-16 22:32   ` Tony Luck
2015-01-16 22:49     ` Jens Axboe
2015-01-18 13:08       ` Boaz Harrosh
2015-01-18 15:10         ` Christoph Hellwig
2015-01-18 15:32           ` [RFC] block: Remove annoying "unknown partition table" message Boaz Harrosh
2015-01-18 15:48             ` Boaz Harrosh
2015-01-20 21:50               ` Jens Axboe
2015-01-22 12:39                 ` [PATCH] " Boaz Harrosh
2015-01-22 12:47                   ` Boaz Harrosh
2015-01-07 16:09 ` Boaz Harrosh [this message]
2015-01-08 15:37   ` [PATCH 4/4 v4] brd: Request from fdisk 4k alignment Martin K. Petersen
2015-01-08 20:56 ` [PATCHSET 0/4 v4] brd: partition fixes Jens Axboe
2015-01-11  9:30   ` Boaz Harrosh

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=54AD5A42.5040404@plexistor.com \
    --to=boaz@plexistor.com \
    --cc=axboe@fb.com \
    --cc=dmonakhov@openvz.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=willy@linux.intel.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.