From: Greg KH <gregkh@linuxfoundation.org>
To: "Jan Höppner" <hoeppner@linux.ibm.com>
Cc: stable@vger.kernel.org, sth@linux.ibm.com
Subject: Re: [PATCH] Revert "s390/dasd: Establish DMA alignment"
Date: Tue, 27 Aug 2024 15:14:12 +0200 [thread overview]
Message-ID: <2024082702-scoff-panning-4a8a@gregkh> (raw)
In-Reply-To: <20240820141307.2869182-1-hoeppner@linux.ibm.com>
On Tue, Aug 20, 2024 at 04:13:07PM +0200, Jan Höppner wrote:
> This reverts commit bc792884b76f ("s390/dasd: Establish DMA alignment").
>
> Quoting the original commit:
> linux-next commit bf8d08532bc1 ("iomap: add support for dma aligned
> direct-io") changes the alignment requirement to come from the block
> device rather than the block size, and the default alignment
> requirement is 512-byte boundaries. Since DASD I/O has page
> alignments for IDAW/TIDAW requests, let's override this value to
> restore the expected behavior.
>
> I mentioned TIDAW, but that was wrong. TIDAWs have no distinct alignment
> requirement (per p. 15-70 of POPS SA22-7832-13):
>
> Unless otherwise specified, TIDAWs may designate
> a block of main storage on any boundary and length
> up to 4K bytes, provided the specified block does not
> cross a 4 K-byte boundary.
>
> IDAWs do, but the original commit neglected that while ECKD DASD are
> typically formatted in 4096-byte blocks, they don't HAVE to be. Formatting
> an ECKD volume with smaller blocks is permitted (dasdfmt -b xxx), and the
> problematic commit enforces alignment properties to such a device that
> will result in errors, such as:
>
> [test@host ~]# lsdasd -l a367 | grep blksz
> blksz: 512
> [test@host ~]# mkfs.xfs -f /dev/disk/by-path/ccw-0.0.a367-part1
> meta-data=/dev/dasdc1 isize=512 agcount=4, agsize=230075 blks
> = sectsz=512 attr=2, projid32bit=1
> = crc=1 finobt=1, sparse=1, rmapbt=1
> = reflink=1 bigtime=1 inobtcount=1 nrext64=1
> data = bsize=4096 blocks=920299, imaxpct=25
> = sunit=0 swidth=0 blks
> naming =version 2 bsize=4096 ascii-ci=0, ftype=1
> log =internal log bsize=4096 blocks=16384, version=2
> = sectsz=512 sunit=0 blks, lazy-count=1
> realtime =none extsz=4096 blocks=0, rtextents=0
> error reading existing superblock: Invalid argument
> mkfs.xfs: pwrite failed: Invalid argument
> libxfs_bwrite: write failed on (unknown) bno 0x70565c/0x100, err=22
> mkfs.xfs: Releasing dirty buffer to free list!
> found dirty buffer (bulk) on free list!
> mkfs.xfs: pwrite failed: Invalid argument
> ...snipped...
>
> The original commit omitted the FBA discipline for just this reason,
> but the formatted block size of the other disciplines was overlooked.
> The solution to all of this is to revert to the original behavior,
> such that the block size can be respected.
>
> But what of the original problem? That was manifested with a direct-io
> QEMU guest, where QEMU itself was changed a month or two later with
> commit 25474d90aa ("block: use the request length for iov alignment")
> such that the blamed kernel commit is unnecessary.
>
> Note: This is an adapted version of the original upstream commit
> 2a07bb64d801 ("s390/dasd: Remove DMA alignment").
>
> Cc: stable@vger.kernel.org # 6.0+
> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
> ---
> drivers/s390/block/dasd_diag.c | 1 -
> drivers/s390/block/dasd_eckd.c | 1 -
> 2 files changed, 2 deletions(-)
>
Now queued up, thanks.
greg k-h
prev parent reply other threads:[~2024-08-27 13:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-20 9:41 "s390/dasd: Remove DMA alignment" for stable Jan Höppner
2024-08-20 13:24 ` Greg KH
2024-08-20 14:13 ` [PATCH] Revert "s390/dasd: Establish DMA alignment" Jan Höppner
2024-08-27 13:14 ` Greg KH [this message]
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=2024082702-scoff-panning-4a8a@gregkh \
--to=gregkh@linuxfoundation.org \
--cc=hoeppner@linux.ibm.com \
--cc=stable@vger.kernel.org \
--cc=sth@linux.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox