* patch "libata: Add support for SCT Write Same" breaks system
@ 2016-09-08 19:27 Mike Krinkin
2016-09-09 15:16 ` Tejun Heo
0 siblings, 1 reply; 8+ messages in thread
From: Mike Krinkin @ 2016-09-08 19:27 UTC (permalink / raw)
To: shaun; +Cc: linux-ide, linux-scsi, jejb, martin.petersen, tj, hch,
shaun.tancheff
Hi,
i tried recent linux-next on my laptop, and after boot system is
almost unusable because most of apps just crash with segfaults and
in dmesg output there are a lot of errors like this:
[ 17.641510] do_general_protection: 51 callbacks suppressed
[ 17.641514] traps: dpkg[2831] general protection ip:40be90 sp:7ffd6daad9b8 error:0 in dpkg[400000+43000]
[ 17.648882] apport[2832]: segfault at 800000000 ip 0000000000485896 sp 00007ffece3b6c40 error 6 in python3.5[400000+3a7000]
[ 17.648965] Process 2832(apport) has RLIMIT_CORE set to 1
[ 17.648967] Aborting core
[ 17.653463] gpu-manager[2818]: segfault at 0 ip 00007f77c4b8eb5a sp 00007ffc7a01b348 error 4 in libc-2.23.so[7f77c4af0000+1c0000]
[ 17.660760] apport[2833]: segfault at 800000000 ip 0000000000485896 sp 00007ffddfe2a650 error 6 in python3.5[400000+3a7000]
[ 17.660841] Process 2833(apport) has RLIMIT_CORE set to 1
[ 17.660843] Aborting core
[ 18.192604] apport[2847]: segfault at 800000000 ip 0000000000485896 sp 00007ffd2d4a82c0 error 6 in python3.5[400000+3a7000]
[ 18.192630] Process 2847(apport) has RLIMIT_CORE set to 1
[ 18.192633] Aborting core
[ 19.089476] traps: dpkg[2861] general protection ip:40be90 sp:7ffcabc70fa8 error:0 in dpkg[400000+43000]
[ 19.096747] apport[2862]: segfault at 800000000 ip 0000000000485896 sp 00007ffeda308490 error 6 in python3.5[400000+3a7000]
[ 19.096827] Process 2862(apport) has RLIMIT_CORE set to 1
[ 19.096829] Aborting core
[ 19.101197] gpu-manager[2849]: segfault at 0 ip 00007fdccfef8b5a sp 00007ffeb4758488 error 4 in libc-2.23.so[7fdccfe5a000+1c0000]
[ 19.106683] apport[2863]: segfault at 800000000 ip 0000000000485896 sp 00007ffcf8955d10 error 6 in python3.5[400000+3a7000]
[ 19.106708] Process 2863(apport) has RLIMIT_CORE set to 1
[ 19.106709] Aborting core
[ 19.616176] apport[2898]: segfault at 800000000 ip 0000000000485896 sp 00007ffd12c29180 error 6 in python3.5[400000+3a7000]
[ 19.616216] Process 2898(apport) has RLIMIT_CORE set to 1
[ 19.616217] Aborting core
[ 23.182904] lsb_release[2911]: segfault at 800000000 ip 0000000000485896 sp 00007ffca2f6bec0 error 6 in python3.5[400000+3a7000]
[ 23.185672] apport[2913]: segfault at 800000000 ip 0000000000485896 sp 00007ffcf199e160 error 6 in python3.5[400000+3a7000]
[ 23.185698] Process 2913(apport) has RLIMIT_CORE set to 1
[ 23.185698] Aborting core
[ 23.212363] apport[2921]: segfault at 800000000 ip 0000000000485896 sp 00007ffe934094c0 error 6 in python3.5[400000+3a7000]
[ 23.212389] Process 2921(apport) has RLIMIT_CORE set to 1
[ 23.212390] Aborting core
[ 23.223112] apport[2926]: segfault at 800000000 ip 0000000000485896 sp 00007ffcc68e1240 error 6 in python3.5[400000+3a7000]
[ 23.223137] Process 2926(apport) has RLIMIT_CORE set to 1
[ 23.223137] Aborting core
git bisect points at commit 7b20309428598df00ffe ("libata: Add support for SCT
Write Same". I temporary fixed problem with the following change:
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 08d9c8e..0dcd59e 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -1159,6 +1159,7 @@ static void ata_scsi_sdev_config(struct scsi_device *sdev)
{
sdev->use_10_for_rw = 1;
sdev->use_10_for_ms = 1;
+ sdev->no_write_same = 1;
/* Schedule policy is determined by ->qc_defer() callback and
* it needs to see every deferred qc. Set dev_blocked to 1 to
Don't know whether it will help or not, but here is my hdparm output:
sudo hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: SAMSUNG MZNLN512HCJH-000L1
Serial Number: S201NX0H404301
Firmware Revision: EMT22L0Q
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Used: unknown (minor revision code 0x0039)
Supported: 9 8 7 6 5
Likely used: 9
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 1000215216
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
device size with M = 1024*1024: 488386 MBytes
device size with M = 1000*1000: 512110 MBytes (512 GB)
cache/buffer size = unknown
Nominal Media Rotation Rate: Solid State Device
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
SET_MAX security extension
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* WRITE_{DMA|MULTIPLE}_FUA_EXT
* 64-bit World wide name
Write-Read-Verify feature set
* WRITE_UNCORRECTABLE_EXT command
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Gen3 signaling speed (6.0Gb/s)
* Native Command Queueing (NCQ)
* Phy event counters
* READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
* DMA Setup Auto-Activate optimization
Device-initiated interface power management
* Asynchronous notification (eg. media change)
* Software settings preservation
Device Sleep (DEVSLP)
* SMART Command Transport (SCT) feature set
* SCT Write Same (AC2)
* SCT Error Recovery Control (AC3)
* SCT Features Control (AC4)
* SCT Data Tables (AC5)
* DOWNLOAD MICROCODE DMA command
* SET MAX SETPASSWORD/UNLOCK DMA commands
* WRITE BUFFER DMA command
* READ BUFFER DMA command
* Data Set Management TRIM supported (limit 8 blocks)
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
2min for SECURITY ERASE UNIT. 8min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 5002538d00000000
NAA : 5
IEEE OUI : 002538
Unique ID : d00000000
Device Sleep:
DEVSLP Exit Timeout (DETO): 50 ms (drive)
Minimum DEVSLP Assertion Time (MDAT): 30 ms (drive)
Checksum: correct
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: patch "libata: Add support for SCT Write Same" breaks system
2016-09-08 19:27 patch "libata: Add support for SCT Write Same" breaks system Mike Krinkin
@ 2016-09-09 15:16 ` Tejun Heo
[not found] ` <CAJVOszB39NfK=z-rHVWuLyz909pSVwTMRFDPFcY50Uaoj6STEQ@mail.gmail.com>
0 siblings, 1 reply; 8+ messages in thread
From: Tejun Heo @ 2016-09-09 15:16 UTC (permalink / raw)
To: Mike Krinkin
Cc: shaun, linux-ide, linux-scsi, jejb, martin.petersen, hch,
shaun.tancheff
Hello,
On Thu, Sep 08, 2016 at 10:27:37PM +0300, Mike Krinkin wrote:
> Hi,
>
> i tried recent linux-next on my laptop, and after boot system is
> almost unusable because most of apps just crash with segfaults and
> in dmesg output there are a lot of errors like this:
...
> git bisect points at commit 7b20309428598df00ffe ("libata: Add support for SCT
> Write Same". I temporary fixed problem with the following change:
Shaun, any ideas? If this isn't an easy fix, I'm gonna disable
write_same for all devices for now.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: patch "libata: Add support for SCT Write Same" breaks system
[not found] ` <CAJVOszB39NfK=z-rHVWuLyz909pSVwTMRFDPFcY50Uaoj6STEQ@mail.gmail.com>
@ 2016-09-09 15:36 ` Tejun Heo
2016-09-09 15:55 ` Shaun Tancheff
2016-09-09 17:17 ` patch "libata: Add support for SCT Write Same" breaks system Shaun Tancheff
0 siblings, 2 replies; 8+ messages in thread
From: Tejun Heo @ 2016-09-09 15:36 UTC (permalink / raw)
To: Shaun Tancheff
Cc: Mike Krinkin, Shaun Tancheff, linux-ide, linux-scsi,
James E . J . Bottomley, Martin K. Petersen, Christoph Hellwig
Hello, Shaun.
On Fri, Sep 09, 2016 at 10:26:44AM -0500, Shaun Tancheff wrote:
> I'm looking into it now. Let me see if I can reproduce this on any of my
> hardware.
>
> If not there are a couple of options ... one is to only enable for ZBC
> devices
> where this explicitly required by the spec.
>
> Or disable for devices that report support trim?
I'd much prefer enabling this only on ZBC devices. There isn't any
real benefits to !ZBC devices, right? Using non-essential features on
ATA never goes well.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: patch "libata: Add support for SCT Write Same" breaks system
2016-09-09 15:36 ` Tejun Heo
@ 2016-09-09 15:55 ` Shaun Tancheff
2016-09-09 16:44 ` [PATCH] Some drives failing on SCT Write Same Shaun Tancheff
2016-09-09 17:17 ` patch "libata: Add support for SCT Write Same" breaks system Shaun Tancheff
1 sibling, 1 reply; 8+ messages in thread
From: Shaun Tancheff @ 2016-09-09 15:55 UTC (permalink / raw)
To: Tejun Heo
Cc: Shaun Tancheff, Mike Krinkin, linux-ide, linux-scsi,
James E . J . Bottomley, Martin K. Petersen, Christoph Hellwig
On Fri, Sep 9, 2016 at 10:36 AM, Tejun Heo <tj@kernel.org> wrote:
> Hello, Shaun.
>
> On Fri, Sep 09, 2016 at 10:26:44AM -0500, Shaun Tancheff wrote:
>> I'm looking into it now. Let me see if I can reproduce this on any of my
>> hardware.
>>
>> If not there are a couple of options ... one is to only enable for ZBC
>> devices
>> where this explicitly required by the spec.
>>
>> Or disable for devices that report support trim?
>
> I'd much prefer enabling this only on ZBC devices. There isn't any
> real benefits to !ZBC devices, right? Using non-essential features on
> ATA never goes well.
Sure I'm fine with that.
I'll move the WRITE SAME support to be conditional on ZBC.
Sending a patch as soon as it's tested.
> Thanks.
>
> --
> tejun
Thanks
--
Shaun
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] Some drives failing on SCT Write Same
2016-09-09 15:55 ` Shaun Tancheff
@ 2016-09-09 16:44 ` Shaun Tancheff
[not found] ` <CAJVOszCDZo8Ev==qNP1Umjwxqbfy1=yuymbbA15FfXmXkh5QCg@mail.gmail.com>
2016-09-09 19:24 ` Tejun Heo
0 siblings, 2 replies; 8+ messages in thread
From: Shaun Tancheff @ 2016-09-09 16:44 UTC (permalink / raw)
To: tj
Cc: Shaun Tancheff, Mike Krinkin, linux-ide, linux-scsi, jejb,
martin.petersen, hch, shaun.tancheff
Restrict support SCT Write Same to devices which also support ZAC where
support is required.
Reported-by: Mike Krinkin <krinkin.m.u@gmail.com>
Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com>
---
drivers/ata/libata-scsi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 2f5487f..9cceb4a 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3562,9 +3562,9 @@ static unsigned int ata_scsiop_maint_in(struct ata_scsi_args *args, u8 *rbuf)
supported = 3;
break;
case WRITE_SAME_16:
- if (ata_id_sct_write_same(dev->id))
- supported = 3;
- break;
+ if (!ata_id_sct_write_same(dev->id))
+ break;
+ /* fallthrough: if SCT ... only enable for ZBC */
case ZBC_IN:
case ZBC_OUT:
if (ata_id_zoned_cap(dev->id) ||
--
2.9.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: patch "libata: Add support for SCT Write Same" breaks system
2016-09-09 15:36 ` Tejun Heo
2016-09-09 15:55 ` Shaun Tancheff
@ 2016-09-09 17:17 ` Shaun Tancheff
1 sibling, 0 replies; 8+ messages in thread
From: Shaun Tancheff @ 2016-09-09 17:17 UTC (permalink / raw)
To: Tejun Heo
Cc: Mike Krinkin, Shaun Tancheff, linux-ide, linux-scsi,
James E . J . Bottomley, Martin K. Petersen, Christoph Hellwig
On Fri, Sep 9, 2016 at 10:36 AM, Tejun Heo <tj@kernel.org> wrote:
> Hello, Shaun.
>
> On Fri, Sep 09, 2016 at 10:26:44AM -0500, Shaun Tancheff wrote:
>> I'm looking into it now. Let me see if I can reproduce this on any of my
>> hardware.
>>
>> If not there are a couple of options ... one is to only enable for ZBC
>> devices
>> where this explicitly required by the spec.
>>
>> Or disable for devices that report support trim?
>
> I'd much prefer enabling this only on ZBC devices. There isn't any
> real benefits to !ZBC devices, right? Using non-essential features on
> ATA never goes well.
I've posted a patch for !ZBC.
Mike, can you confirm if this works for you?
>
> Thanks.
>
> --
> tejun
Thanks!
(Apologies for the html reply earlier)
--
Shaun Tancheff
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] Some drives failing on SCT Write Same
[not found] ` <CAJVOszCDZo8Ev==qNP1Umjwxqbfy1=yuymbbA15FfXmXkh5QCg@mail.gmail.com>
@ 2016-09-09 17:52 ` Mike Krinkin
0 siblings, 0 replies; 8+ messages in thread
From: Mike Krinkin @ 2016-09-09 17:52 UTC (permalink / raw)
To: Shaun Tancheff
Cc: Tejun Heo, linux-ide, linux-scsi, James E . J . Bottomley,
Martin K. Petersen, Christoph Hellwig, Shaun Tancheff
On Fri, Sep 09, 2016 at 11:48:51AM -0500, Shaun Tancheff wrote:
> Mike,
>
> Can you confirm if this fix works for you?
>
> I tested the patch is tested on top of next-20160909.
Works for me too, thank you.
>
> Thanks!
> --Shaun
>
> On Fri, Sep 9, 2016 at 11:44 AM, Shaun Tancheff <shaun@tancheff.com> wrote:
>
> > Restrict support SCT Write Same to devices which also support ZAC where
> > support is required.
> >
> > Reported-by: Mike Krinkin <krinkin.m.u@gmail.com>
> > Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com>
> > ---
> > drivers/ata/libata-scsi.c | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
> > index 2f5487f..9cceb4a 100644
> > --- a/drivers/ata/libata-scsi.c
> > +++ b/drivers/ata/libata-scsi.c
> > @@ -3562,9 +3562,9 @@ static unsigned int ata_scsiop_maint_in(struct
> > ata_scsi_args *args, u8 *rbuf)
> > supported = 3;
> > break;
> > case WRITE_SAME_16:
> > - if (ata_id_sct_write_same(dev->id))
> > - supported = 3;
> > - break;
> > + if (!ata_id_sct_write_same(dev->id))
> > + break;
> > + /* fallthrough: if SCT ... only enable for ZBC */
> > case ZBC_IN:
> > case ZBC_OUT:
> > if (ata_id_zoned_cap(dev->id) ||
> > --
> > 2.9.3
> >
> >
>
>
> --
> Shaun Tancheff
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] Some drives failing on SCT Write Same
2016-09-09 16:44 ` [PATCH] Some drives failing on SCT Write Same Shaun Tancheff
[not found] ` <CAJVOszCDZo8Ev==qNP1Umjwxqbfy1=yuymbbA15FfXmXkh5QCg@mail.gmail.com>
@ 2016-09-09 19:24 ` Tejun Heo
1 sibling, 0 replies; 8+ messages in thread
From: Tejun Heo @ 2016-09-09 19:24 UTC (permalink / raw)
To: Shaun Tancheff
Cc: Mike Krinkin, linux-ide, linux-scsi, jejb, martin.petersen, hch,
shaun.tancheff
On Fri, Sep 09, 2016 at 11:44:19AM -0500, Shaun Tancheff wrote:
> Restrict support SCT Write Same to devices which also support ZAC where
> support is required.
>
> Reported-by: Mike Krinkin <krinkin.m.u@gmail.com>
> Signed-off-by: Shaun Tancheff <shaun.tancheff@seagate.com>
Applied to libata/for-4.9.
Thanks.
--
tejun
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-09-09 19:24 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-08 19:27 patch "libata: Add support for SCT Write Same" breaks system Mike Krinkin
2016-09-09 15:16 ` Tejun Heo
[not found] ` <CAJVOszB39NfK=z-rHVWuLyz909pSVwTMRFDPFcY50Uaoj6STEQ@mail.gmail.com>
2016-09-09 15:36 ` Tejun Heo
2016-09-09 15:55 ` Shaun Tancheff
2016-09-09 16:44 ` [PATCH] Some drives failing on SCT Write Same Shaun Tancheff
[not found] ` <CAJVOszCDZo8Ev==qNP1Umjwxqbfy1=yuymbbA15FfXmXkh5QCg@mail.gmail.com>
2016-09-09 17:52 ` Mike Krinkin
2016-09-09 19:24 ` Tejun Heo
2016-09-09 17:17 ` patch "libata: Add support for SCT Write Same" breaks system Shaun Tancheff
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).