* [PATCH v7 1/4] block: Add iocontext priority to request
From: Adam Manzanares @ 2016-12-06 17:18 UTC (permalink / raw)
To: axboe, hare, mchristi, dan.j.williams, martin.petersen,
toshi.kani, damien.lemoal, ming.lei, tj
Cc: linux-block, linux-kernel, linux-ide, Adam Manzanares
In-Reply-To: <1481044685-2803-1-git-send-email-adam.manzanares@hgst.com>
From: Adam Manzanares <adam.manzanares@wdc.com>
Patch adds an association between iocontext ioprio and the ioprio of a
request. This is done to enable request based drivers the ability to
act on priority information stored in the request. An example being
ATA devices that support command priorities. If the ATA driver discovers
that the device supports command priorities and the request has valid
priority information indicating the request is high priority, then a high
priority command can be sent to the device. This should improve tail
latencies for high priority IO on any device that queues requests
internally and can make use of the priority information stored in the
request.
The ioprio of the request is set in blk_rq_set_prio which takes the
request and the ioc as arguments. If the ioc is valid in blk_rq_set_prio
then the iopriority of the request is set as the iopriority of the ioc.
In init_request_from_bio a check is made to see if the ioprio of the bio
is valid and if so then the request prio comes from the bio.
Signed-off-by: Adam Manzananares <adam.manzanares@wdc.com>
---
block/blk-core.c | 4 +++-
include/linux/blkdev.h | 14 ++++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/block/blk-core.c b/block/blk-core.c
index 6c4a425..4d1d1f9 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -1154,6 +1154,7 @@ static struct request *__get_request(struct request_list *rl, unsigned int op,
blk_rq_init(q, rq);
blk_rq_set_rl(rq, rl);
+ blk_rq_set_prio(rq, ioc);
rq->cmd_flags = op;
rq->rq_flags = rq_flags;
@@ -1658,7 +1659,8 @@ void init_request_from_bio(struct request *req, struct bio *bio)
req->errors = 0;
req->__sector = bio->bi_iter.bi_sector;
- req->ioprio = bio_prio(bio);
+ if (ioprio_valid(bio_prio(bio)))
+ req->ioprio = bio_prio(bio);
blk_rq_bio_prep(req->q, req, bio);
}
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 541fdd8..8c2a1ef 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1050,6 +1050,20 @@ static inline unsigned int blk_rq_count_bios(struct request *rq)
}
/*
+ * blk_rq_set_prio - associate a request with prio from ioc
+ * @rq: request of interest
+ * @ioc: target iocontext
+ *
+ * Assocate request prio with ioc prio so request based drivers
+ * can leverage priority information.
+ */
+static inline void blk_rq_set_prio(struct request *rq, struct io_context *ioc)
+{
+ if (ioc)
+ rq->ioprio = ioc->ioprio;
+}
+
+/*
* Request issue related functions.
*/
extern struct request *blk_peek_request(struct request_queue *q);
--
2.7.4
^ permalink raw reply related
* Re: [PATCH v7 0/4] Enabling ATA Command Priorities
From: Tejun Heo @ 2016-12-06 18:37 UTC (permalink / raw)
To: Adam Manzanares
Cc: axboe, hare, mchristi, dan.j.williams, martin.petersen,
toshi.kani, damien.lemoal, ming.lei, linux-block, linux-kernel,
linux-ide, Adam Manzanares
In-Reply-To: <1481044685-2803-1-git-send-email-adam.manzanares@hgst.com>
Adam,
On Tue, Dec 06, 2016 at 09:18:01AM -0800, Adam Manzanares wrote:
> From: Adam Manzanares <adam.manzanares@wdc.com>
>
> This patch builds ATA commands with high priority if the iocontext of a process
> is set to real time. The goal of the patch is to improve tail latencies of
> workloads that use higher queue depths. This requires setting the iocontext
> ioprio on the request when it is initialized
>
> This patch has been tested with an Ultrastar HE8 HDD and cuts the
> the p99.99 tail latency of foreground IO from 2s down to 72ms when
> using the deadline scheduler. This patch works independently of the
> scheduler so it can be used with all of the currently available
> request based schedulers.
>
> Foreground IO, for the previously described results, is an async fio job
> submitting 4K read requests at a QD of 1 to the HDD. The foreground IO is set
> with the iopriority class of real time. The background workload is another fio
> job submitting read requests at a QD of 32 to the same HDD with default
> iopriority.
>
> This feature is enabled for ATA devices by setting the ata ncq_prio_enable
> device attribute to 1. An ATA device is also checked to see if the device
> supports per command priority.
>
> v7:
> - Run ncq prio support check when sysfs variable set (zero day bug fix)
> - Fixes from TJ merged in
> - Merge fix for linux-next incorporated
The previous version has already been merged into libata/for-4.10.
Can you please send me an incremental patch on top of it? The tree
can be fetched from
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git for-4.10
Thanks.
--
tejun
^ permalink raw reply
* [PATCH v7 2/4] ata: Enabling ATA Command Priorities
From: Adam Manzanares @ 2016-12-06 17:18 UTC (permalink / raw)
To: axboe, hare, mchristi, dan.j.williams, martin.petersen,
toshi.kani, damien.lemoal, ming.lei, tj
Cc: linux-block, linux-kernel, linux-ide, Adam Manzanares
In-Reply-To: <1481044685-2803-1-git-send-email-adam.manzanares@hgst.com>
From: Adam Manzanares <adam.manzanares@wdc.com>
This patch checks to see if an ATA device supports NCQ command priorities.
If so and the user has specified an iocontext that indicates
IO_PRIO_CLASS_RT then we build a tf with a high priority command.
This is done to improve the tail latency of commands that are high
priority by passing priority to the device.
tj: Removed trivial ata_ncq_prio_enabled() and open-coded the test.
Signed-off-by: Adam Manzanares <adam.manzanares@wdc.com>
---
drivers/ata/libata-core.c | 33 ++++++++++++++++++++++++++++++++-
drivers/ata/libata-scsi.c | 6 +++++-
drivers/ata/libata.h | 3 ++-
include/linux/ata.h | 6 ++++++
include/linux/libata.h | 3 +++
5 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 223a770..5d16363 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -739,6 +739,7 @@ u64 ata_tf_read_block(const struct ata_taskfile *tf, struct ata_device *dev)
* @n_block: Number of blocks
* @tf_flags: RW/FUA etc...
* @tag: tag
+ * @class: IO priority class
*
* LOCKING:
* None.
@@ -753,7 +754,7 @@ u64 ata_tf_read_block(const struct ata_taskfile *tf, struct ata_device *dev)
*/
int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
u64 block, u32 n_block, unsigned int tf_flags,
- unsigned int tag)
+ unsigned int tag, int class)
{
tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE;
tf->flags |= tf_flags;
@@ -785,6 +786,12 @@ int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
tf->device = ATA_LBA;
if (tf->flags & ATA_TFLAG_FUA)
tf->device |= 1 << 7;
+
+ if (dev->flags & ATA_DFLAG_NCQ_PRIO) {
+ if (class == IOPRIO_CLASS_RT)
+ tf->hob_nsect |= ATA_PRIO_HIGH <<
+ ATA_SHIFT_PRIO;
+ }
} else if (dev->flags & ATA_DFLAG_LBA) {
tf->flags |= ATA_TFLAG_LBA;
@@ -2156,6 +2163,30 @@ static void ata_dev_config_ncq_non_data(struct ata_device *dev)
}
}
+void ata_dev_config_ncq_prio(struct ata_device *dev)
+{
+ struct ata_port *ap = dev->link->ap;
+ unsigned int err_mask;
+
+ err_mask = ata_read_log_page(dev,
+ ATA_LOG_SATA_ID_DEV_DATA,
+ ATA_LOG_SATA_SETTINGS,
+ ap->sector_buf,
+ 1);
+ if (err_mask) {
+ ata_dev_dbg(dev,
+ "failed to get Identify Device data, Emask 0x%x\n",
+ err_mask);
+ return;
+ }
+
+ if (ap->sector_buf[ATA_LOG_NCQ_PRIO_OFFSET] & BIT(3))
+ dev->flags |= ATA_DFLAG_NCQ_PRIO;
+ else
+ ata_dev_dbg(dev, "SATA page does not support priority\n");
+
+}
+
static int ata_dev_config_ncq(struct ata_device *dev,
char *desc, size_t desc_sz)
{
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 9cceb4a..2bccc3c 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -50,6 +50,7 @@
#include <linux/uaccess.h>
#include <linux/suspend.h>
#include <asm/unaligned.h>
+#include <linux/ioprio.h>
#include "libata.h"
#include "libata-transport.h"
@@ -1755,6 +1756,8 @@ static unsigned int ata_scsi_rw_xlat(struct ata_queued_cmd *qc)
{
struct scsi_cmnd *scmd = qc->scsicmd;
const u8 *cdb = scmd->cmnd;
+ struct request *rq = scmd->request;
+ int class = IOPRIO_PRIO_CLASS(req_get_ioprio(rq));
unsigned int tf_flags = 0;
u64 block;
u32 n_block;
@@ -1821,7 +1824,8 @@ static unsigned int ata_scsi_rw_xlat(struct ata_queued_cmd *qc)
qc->nbytes = n_block * scmd->device->sector_size;
rc = ata_build_rw_tf(&qc->tf, qc->dev, block, n_block, tf_flags,
- qc->tag);
+ qc->tag, class);
+
if (likely(rc == 0))
return 0;
diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
index 3b301a4..03d0908 100644
--- a/drivers/ata/libata.h
+++ b/drivers/ata/libata.h
@@ -66,7 +66,7 @@ extern u64 ata_tf_to_lba48(const struct ata_taskfile *tf);
extern struct ata_queued_cmd *ata_qc_new_init(struct ata_device *dev, int tag);
extern int ata_build_rw_tf(struct ata_taskfile *tf, struct ata_device *dev,
u64 block, u32 n_block, unsigned int tf_flags,
- unsigned int tag);
+ unsigned int tag, int class);
extern u64 ata_tf_read_block(const struct ata_taskfile *tf,
struct ata_device *dev);
extern unsigned ata_exec_internal(struct ata_device *dev,
@@ -85,6 +85,7 @@ extern int ata_dev_reread_id(struct ata_device *dev, unsigned int readid_flags);
extern int ata_dev_revalidate(struct ata_device *dev, unsigned int new_class,
unsigned int readid_flags);
extern int ata_dev_configure(struct ata_device *dev);
+extern void ata_dev_config_ncq_prio(struct ata_device *dev);
extern int sata_down_spd_limit(struct ata_link *link, u32 spd_limit);
extern int ata_down_xfermask_limit(struct ata_device *dev, unsigned int sel);
extern unsigned int ata_dev_set_feature(struct ata_device *dev,
diff --git a/include/linux/ata.h b/include/linux/ata.h
index fdb1803..af6859b 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -348,6 +348,7 @@ enum {
ATA_LOG_DEVSLP_DETO = 0x01,
ATA_LOG_DEVSLP_VALID = 0x07,
ATA_LOG_DEVSLP_VALID_MASK = 0x80,
+ ATA_LOG_NCQ_PRIO_OFFSET = 0x09,
/* NCQ send and receive log */
ATA_LOG_NCQ_SEND_RECV_SUBCMDS_OFFSET = 0x00,
@@ -940,6 +941,11 @@ static inline bool ata_id_has_ncq_non_data(const u16 *id)
return id[ATA_ID_SATA_CAPABILITY_2] & BIT(5);
}
+static inline bool ata_id_has_ncq_prio(const u16 *id)
+{
+ return id[ATA_ID_SATA_CAPABILITY] & BIT(12);
+}
+
static inline bool ata_id_has_trim(const u16 *id)
{
if (ata_id_major_version(id) >= 7 &&
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 616eef4..90b69a6 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -166,6 +166,7 @@ enum {
ATA_DFLAG_NO_UNLOAD = (1 << 17), /* device doesn't support unload */
ATA_DFLAG_UNLOCK_HPA = (1 << 18), /* unlock HPA */
ATA_DFLAG_NCQ_SEND_RECV = (1 << 19), /* device supports NCQ SEND and RECV */
+ ATA_DFLAG_NCQ_PRIO = (1 << 20), /* device supports NCQ priority */
ATA_DFLAG_INIT_MASK = (1 << 24) - 1,
ATA_DFLAG_DETACH = (1 << 24),
@@ -342,7 +343,9 @@ enum {
ATA_SHIFT_PIO = 0,
ATA_SHIFT_MWDMA = ATA_SHIFT_PIO + ATA_NR_PIO_MODES,
ATA_SHIFT_UDMA = ATA_SHIFT_MWDMA + ATA_NR_MWDMA_MODES,
+ ATA_SHIFT_PRIO = 6,
+ ATA_PRIO_HIGH = 2,
/* size of buffer to pad xfers ending on unaligned boundaries */
ATA_DMA_PAD_SZ = 4,
--
2.7.4
^ permalink raw reply related
* Re: LSF/MM 2017: Call for Proposals
From: James Bottomley @ 2016-12-07 14:57 UTC (permalink / raw)
To: Jeff Layton, linux-block, linux-btrfs, linux-cifs, linux-ext4,
linux-fsdevel, linux-ide, linux-kernel, linux-mm, linux-nfs,
linux-scsi, xfs@oss.sgi.com, ceph-devel, linux-nvme
Cc: lsf-pc@lists.linux-foundation.org
In-Reply-To: <1480601506.2511.7.camel@poochiereds.net>
On Thu, 2016-12-01 at 09:11 -0500, Jeff Layton wrote:
> 1) Proposals for agenda topics should be sent before January 15th,
> 2016 to:
>
> lsf-pc@lists.linux-foundation.org
>
> and cc the Linux list or lists that are relevant for the topic in
> question:
>
> ATA: linux-ide@vger.kernel.org
> Block: linux-block@vger.kernel.org
> FS: linux-fsdevel@vger.kernel.org
> MM: linux-mm@kvack.org
> SCSI: linux-scsi@vger.kernel.org
> NVMe: linux-nvme@lists.infradead.org
>
> Please tag your proposal with [LSF/MM TOPIC] to make it easier to
> track.
Just on this point, since there seems to be a lot of confusion: lsf-pc
is the list for contacting the programme committee, so you cannot
subscribe to it.
There is no -discuss equivalent, like kernel summit has, because we
expect you to cc the relevant existing mailing list and have the
discussion there instead rather than expecting people to subscribe to a
new list.
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* [PATCH] libata-scsi: disable SCT Write Same for the moment
From: Nicolai Stange @ 2016-12-07 21:21 UTC (permalink / raw)
To: Tejun Heo; +Cc: Shaun Tancheff, linux-ide, linux-kernel, Nicolai Stange
SCT Write Same support had been introduced with
commit 7b2030942859 ("libata: Add support for SCT Write Same")
Some problems, namely excessive userspace segfaults, had been reported at
http://lkml.kernel.org/r/20160908192736.GA4356@gmail.com
This lead to commit 0ce1b18c42a5 ("libata: Some drives failing on
SCT Write Same") which strived to disable SCT Write Same on !ZAC devices.
Due to the way this was done and to the logic in sd_config_write_same(),
this didn't work for those devices that have
->max_ws_blocks > SD_MAX_WS10_BLOCKS: for these, ->no_write_same and
->max_write_same_sectors would still be non-zero,
but ->ws10 == ->ws16 == 0. This would cause sd_setup_write_same_cmnd() to
demultiplex REQ_OP_WRITE_SAME requests to WRITE_SAME, and these in turn
aren't supported by libata-scsi:
EXT4-fs (dm-1): Delayed block allocation failed for inode 2625094 at
logical offset 2032 with max blocks 2 with error 121
EXT4-fs (dm-1): This should not happen!! Data will be lost
121 == EREMOTEIO is what scsi_io_completion() asserts in case of
invalid opcodes.
Back to the original problem of userspace segfaults: this can be tracked
down to ata_format_sct_write_same() overwriting the input page. Sometimes,
this page is ZERO_PAGE(0) which ceases to be filled with zeros from that
point on. Since ZERO_PAGE(0) is used for userspace .bss mappings, code of
the following is doomed:
static char *a = NULL; /* .bss */
...
if (a)
*a = 'a';
This problem is not solved by disabling SCT Write Same for !ZAC devices
only.
It can certainly be fixed, but the final release is quite close -- so
disable SCT Write Same for all ATA devices rather than introducing some
SCT key buffer allocation schemes at this point.
Fixes: 7b2030942859 ("libata: Add support for SCT Write Same")
Signed-off-by: Nicolai Stange <nicstange@gmail.com>
---
drivers/ata/libata-scsi.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 982bcfc..c9abb87 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -1234,6 +1234,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
--
2.10.2
^ permalink raw reply related
* Re: [PATCH] libata-scsi: disable SCT Write Same for the moment
From: Tejun Heo @ 2016-12-07 21:32 UTC (permalink / raw)
To: Nicolai Stange; +Cc: Shaun Tancheff, linux-ide, linux-kernel
In-Reply-To: <20161207212133.3463-1-nicstange@gmail.com>
On Wed, Dec 07, 2016 at 10:21:33PM +0100, Nicolai Stange wrote:
> It can certainly be fixed, but the final release is quite close -- so
> disable SCT Write Same for all ATA devices rather than introducing some
> SCT key buffer allocation schemes at this point.
Applied to libata/for-4.9-fixes. Will push out soon.
Thanks.
--
tejun
^ permalink raw reply
* Re: LSF/MM 2017: Call for Proposals
From: Michal Hocko @ 2016-12-08 12:26 UTC (permalink / raw)
To: James Bottomley
Cc: Jeff Layton, linux-block, linux-btrfs, linux-cifs, linux-ext4,
linux-fsdevel, linux-ide, linux-kernel, linux-mm, linux-nfs,
linux-scsi, xfs@oss.sgi.com, ceph-devel, linux-nvme,
lsf-pc@lists.linux-foundation.org
In-Reply-To: <1481122626.2354.14.camel@HansenPartnership.com>
On Wed 07-12-16 06:57:06, James Bottomley wrote:
[...]
> Just on this point, since there seems to be a lot of confusion: lsf-pc
> is the list for contacting the programme committee, so you cannot
> subscribe to it.
>
> There is no -discuss equivalent, like kernel summit has, because we
> expect you to cc the relevant existing mailing list and have the
> discussion there instead rather than expecting people to subscribe to a
> new list.
There used to be lsf@lists.linux-foundation.org. Is it not active
anymore?
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: [Lsf-pc] LSF/MM 2017: Call for Proposals
From: Jan Kara @ 2016-12-08 12:34 UTC (permalink / raw)
To: Michal Hocko
Cc: James Bottomley, linux-cifs, linux-nfs,
lsf-pc@lists.linux-foundation.org, linux-scsi, linux-mm,
linux-kernel, linux-nvme, xfs@oss.sgi.com, linux-block, linux-ide,
linux-fsdevel, Jeff Layton, linux-ext4, ceph-devel, linux-btrfs
In-Reply-To: <20161208122619.GA26535@dhcp22.suse.cz>
On Thu 08-12-16 13:26:19, Michal Hocko wrote:
> On Wed 07-12-16 06:57:06, James Bottomley wrote:
> [...]
> > Just on this point, since there seems to be a lot of confusion: lsf-pc
> > is the list for contacting the programme committee, so you cannot
> > subscribe to it.
> >
> > There is no -discuss equivalent, like kernel summit has, because we
> > expect you to cc the relevant existing mailing list and have the
> > discussion there instead rather than expecting people to subscribe to a
> > new list.
>
> There used to be lsf@lists.linux-foundation.org. Is it not active
> anymore?
No sure about the current state but usually it gets populated by the
selected attendees each year.
Honza
--
Jan Kara <jack@suse.com>
SUSE Labs, CR
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: Bartlomiej Zolnierkiewicz @ 2016-12-08 13:42 UTC (permalink / raw)
To: David S. Miller
Cc: linux-ide, linux-kernel, Tejun Heo, Alan Cox, Sergei Shtylyov
In-Reply-To: <3317462.LGzQYRpeb4@amdc1976>
Hi,
On Friday, July 08, 2016 07:07:46 PM Bartlomiej Zolnierkiewicz wrote:
>
> Hi Dave,
>
> What is your opinion on this patchset?
Ping.. since there was no negative (or any other) feedback I think that
this can be put into -next for some wider exposure..
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
> Best regards,
> --
> Bartlomiej Zolnierkiewicz
> Samsung R&D Institute Poland
> Samsung Electronics
>
> On Thursday, February 04, 2016 02:43:57 PM Bartlomiej Zolnierkiewicz wrote:
> > Hi,
> >
> > IDE subsystem has been deprecated since 2009 and the majority
> > (if not all) of Linux distributions have switched to use
> > libata for ATA support exclusively.
> >
> > This patchset removes IDE host drivers that:
> > - have been replaced by their corresponding libata PATA host
> > drivers (which have been available since 2006/2007)
> > - are not used by any defconfig
> >
> > Having duplicated drivers for the same hardware doesn't seem
> > to be good thing in the long-term perspective for Linux as
> > - testing efforts are divided between two drivers/subsystems
> > (while there is less and less PATA systems left in use)
> > - having two drivers for the same hardware confuses users
> >
> > Please note that all the hardware supported by IDE host drivers
> > nominated for removal remains supported by correspoding libata
> > PATA host drivers.
> >
> > PS If this patchset is accepted I would like to continue
> > removal of IDE host drivers in part 2 which will happen after
> > remaining defconfigs which still are using IDE host drivers
> > get converted to use corresponding libata PATA host drivers.
> >
> > Best regards,
> > --
> > Bartlomiej Zolnierkiewicz
> > Samsung R&D Institute Poland
> > Samsung Electronics
> >
> >
> > Bartlomiej Zolnierkiewicz (19):
> > ide: remove deprecated atiixp host driver
> > ide: remove deprecated cs5520 host driver
> > ide: remove deprecated cs5530 host driver
> > ide: remove deprecated cs5535 host driver
> > ide: remove deprecated cs5536 host driver
> > ide: remove deprecated sc1200 host driver
> > ide: remove deprecated delkin_cb host driver
> > ide: remove deprecated it8213 host driver
> > ide: remove deprecated it821x host driver
> > ide: remove deprecated jmicron host driver
> > ide: remove deprecated opti621 host driver
> > ide: remove deprecated pdc202xx_old host driver
> > ide: remove deprecated rz1000 host driver
> > ide: remove deprecated serverworks host driver
> > ide: remove deprecated sis5513 host driver
> > ide: remove deprecated slc90e66 host driver
> > ide: remove deprecated triflex host driver
> > ide: remove deprecated ide-pnp host driver
> > ide: remove deprecated icside host driver
> >
> > drivers/ide/Kconfig | 200 +------------
> > drivers/ide/Makefile | 19 --
> > drivers/ide/atiixp.c | 211 -------------
> > drivers/ide/cs5520.c | 168 -----------
> > drivers/ide/cs5530.c | 295 -------------------
> > drivers/ide/cs5535.c | 219 --------------
> > drivers/ide/cs5536.c | 306 -------------------
> > drivers/ide/delkin_cb.c | 181 ------------
> > drivers/ide/icside.c | 691 -------------------------------------------
> > drivers/ide/ide-pnp.c | 100 -------
> > drivers/ide/it8213.c | 216 --------------
> > drivers/ide/it821x.c | 715 ---------------------------------------------
> > drivers/ide/jmicron.c | 176 -----------
> > drivers/ide/opti621.c | 178 -----------
> > drivers/ide/pdc202xx_old.c | 361 -----------------------
> > drivers/ide/rz1000.c | 99 -------
> > drivers/ide/sc1200.c | 355 ----------------------
> > drivers/ide/serverworks.c | 449 ----------------------------
> > drivers/ide/sis5513.c | 636 ----------------------------------------
> > drivers/ide/slc90e66.c | 181 ------------
> > drivers/ide/triflex.c | 155 ----------
> > 21 files changed, 2 insertions(+), 5909 deletions(-)
> > delete mode 100644 drivers/ide/atiixp.c
> > delete mode 100644 drivers/ide/cs5520.c
> > delete mode 100644 drivers/ide/cs5530.c
> > delete mode 100644 drivers/ide/cs5535.c
> > delete mode 100644 drivers/ide/cs5536.c
> > delete mode 100644 drivers/ide/delkin_cb.c
> > delete mode 100644 drivers/ide/icside.c
> > delete mode 100644 drivers/ide/ide-pnp.c
> > delete mode 100644 drivers/ide/it8213.c
> > delete mode 100644 drivers/ide/it821x.c
> > delete mode 100644 drivers/ide/jmicron.c
> > delete mode 100644 drivers/ide/opti621.c
> > delete mode 100644 drivers/ide/pdc202xx_old.c
> > delete mode 100644 drivers/ide/rz1000.c
> > delete mode 100644 drivers/ide/sc1200.c
> > delete mode 100644 drivers/ide/serverworks.c
> > delete mode 100644 drivers/ide/sis5513.c
> > delete mode 100644 drivers/ide/slc90e66.c
> > delete mode 100644 drivers/ide/triflex.c
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: David Miller @ 2016-12-08 15:23 UTC (permalink / raw)
To: b.zolnierkie; +Cc: linux-ide, linux-kernel, tj, gnomes, sergei.shtylyov
In-Reply-To: <3280015.pSoKvQuVNQ@amdc3058>
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date: Thu, 08 Dec 2016 14:42:12 +0100
> Ping.. since there was no negative (or any other) feedback I think that
> this can be put into -next for some wider exposure..
I'm not going to apply this and break things on people, sorry.
^ permalink raw reply
* Re: LSF/MM 2017: Call for Proposals
From: James Bottomley @ 2016-12-08 15:30 UTC (permalink / raw)
To: Michal Hocko
Cc: Jeff Layton, linux-block, linux-btrfs, linux-cifs, linux-ext4,
linux-fsdevel, linux-ide, linux-kernel, linux-mm, linux-nfs,
linux-scsi, xfs@oss.sgi.com, ceph-devel, linux-nvme,
lsf-pc@lists.linux-foundation.org
In-Reply-To: <20161208122619.GA26535@dhcp22.suse.cz>
On Thu, 2016-12-08 at 13:26 +0100, Michal Hocko wrote:
> On Wed 07-12-16 06:57:06, James Bottomley wrote:
> [...]
> > Just on this point, since there seems to be a lot of confusion: lsf
> > -pc
> > is the list for contacting the programme committee, so you cannot
> > subscribe to it.
> >
> > There is no -discuss equivalent, like kernel summit has, because we
> > expect you to cc the relevant existing mailing list and have the
> > discussion there instead rather than expecting people to subscribe
> > to a
> > new list.
>
> There used to be lsf@lists.linux-foundation.org. Is it not active
> anymore?
Not until we get the list of invitees sorted out. And then it's only
for stuff actually to do with lsf (like logistics, bof or session
requests or other meetups). Any technical stuff should still be cc'd
to the relevant mailing list.
James
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: LSF/MM 2017: Call for Proposals
From: Michal Hocko @ 2016-12-08 15:37 UTC (permalink / raw)
To: James Bottomley
Cc: Jeff Layton, linux-block, linux-btrfs, linux-cifs, linux-ext4,
linux-fsdevel, linux-ide, linux-kernel, linux-mm, linux-nfs,
linux-scsi, xfs@oss.sgi.com, ceph-devel, linux-nvme,
lsf-pc@lists.linux-foundation.org
In-Reply-To: <1481211043.2361.1.camel@HansenPartnership.com>
On Thu 08-12-16 07:30:43, James Bottomley wrote:
> On Thu, 2016-12-08 at 13:26 +0100, Michal Hocko wrote:
> > On Wed 07-12-16 06:57:06, James Bottomley wrote:
> > [...]
> > > Just on this point, since there seems to be a lot of confusion: lsf
> > > -pc
> > > is the list for contacting the programme committee, so you cannot
> > > subscribe to it.
> > >
> > > There is no -discuss equivalent, like kernel summit has, because we
> > > expect you to cc the relevant existing mailing list and have the
> > > discussion there instead rather than expecting people to subscribe
> > > to a
> > > new list.
> >
> > There used to be lsf@lists.linux-foundation.org. Is it not active
> > anymore?
>
> Not until we get the list of invitees sorted out. And then it's only
> for stuff actually to do with lsf (like logistics, bof or session
> requests or other meetups). Any technical stuff should still be cc'd
> to the relevant mailing list.
OK, I tend to forget about that. Thanks for the clarification!
--
Michal Hocko
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: Bartlomiej Zolnierkiewicz @ 2016-12-08 16:15 UTC (permalink / raw)
To: David Miller; +Cc: linux-ide, linux-kernel, tj, gnomes, sergei.shtylyov
In-Reply-To: <20161208.102308.460750923427290066.davem@davemloft.net>
On Thursday, December 08, 2016 10:23:08 AM David Miller wrote:
> From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Date: Thu, 08 Dec 2016 14:42:12 +0100
>
> > Ping.. since there was no negative (or any other) feedback I think that
> > this can be put into -next for some wider exposure..
>
> I'm not going to apply this and break things on people, sorry.
People building their own kernels with their own kernel config files
and still using IDE drivers (deprecated in 2009 BTW) will have to
update their setups to libata but otherwise nothing is supposed to
break. So could you please explain in more detail what do you mean
by "break things on people"?
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: David Miller @ 2016-12-08 16:39 UTC (permalink / raw)
To: b.zolnierkie; +Cc: linux-ide, linux-kernel, tj, gnomes, sergei.shtylyov
In-Reply-To: <5007114.YSRHeGyTgl@amdc3058>
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date: Thu, 08 Dec 2016 17:15:16 +0100
> On Thursday, December 08, 2016 10:23:08 AM David Miller wrote:
>> From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
>> Date: Thu, 08 Dec 2016 14:42:12 +0100
>>
>> > Ping.. since there was no negative (or any other) feedback I think that
>> > this can be put into -next for some wider exposure..
>>
>> I'm not going to apply this and break things on people, sorry.
>
> People building their own kernels with their own kernel config files
> and still using IDE drivers (deprecated in 2009 BTW) will have to
> update their setups to libata but otherwise nothing is supposed to
> break. So could you please explain in more detail what do you mean
> by "break things on people"?
There is no proof that the PATA drivers work %100 reliably as well as
the IDE driver they replace for every possible chip and architecture.
Therefore the only safe thing is to keep the IDE drivers around
forever.
They are not a maintainence burdon, I rarely get more than 1 patch
each merge window and most of the time those are cleanups or for the
handling of a kernel wide API change rather than bug fixes.
^ permalink raw reply
* - - Re
From: richard @ 2016-12-08 7:23 UTC (permalink / raw)
Please confirm receipt of my previous mail? What time and when can i call you?
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: Christoph Hellwig @ 2016-12-08 17:11 UTC (permalink / raw)
To: David Miller
Cc: b.zolnierkie, linux-ide, linux-kernel, tj, gnomes,
sergei.shtylyov
In-Reply-To: <20161208.113957.686350007074631834.davem@davemloft.net>
On Thu, Dec 08, 2016 at 11:39:57AM -0500, David Miller wrote:
> They are not a maintainence burdon, I rarely get more than 1 patch
> each merge window and most of the time those are cleanups or for the
> handling of a kernel wide API change rather than bug fixes.
They are a major maintainence burden for the block layer due to horrible
abuse of all kinds of block layer APIs.
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: Bartlomiej Zolnierkiewicz @ 2016-12-08 17:14 UTC (permalink / raw)
To: David Miller; +Cc: linux-ide, linux-kernel, tj, gnomes, sergei.shtylyov
In-Reply-To: <20161208.113957.686350007074631834.davem@davemloft.net>
On Thursday, December 08, 2016 11:39:57 AM David Miller wrote:
> From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> Date: Thu, 08 Dec 2016 17:15:16 +0100
>
> > On Thursday, December 08, 2016 10:23:08 AM David Miller wrote:
> >> From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> >> Date: Thu, 08 Dec 2016 14:42:12 +0100
> >>
> >> > Ping.. since there was no negative (or any other) feedback I think that
> >> > this can be put into -next for some wider exposure..
> >>
> >> I'm not going to apply this and break things on people, sorry.
> >
> > People building their own kernels with their own kernel config files
> > and still using IDE drivers (deprecated in 2009 BTW) will have to
> > update their setups to libata but otherwise nothing is supposed to
> > break. So could you please explain in more detail what do you mean
> > by "break things on people"?
>
> There is no proof that the PATA drivers work %100 reliably as well as
> the IDE driver they replace for every possible chip and architecture.
This is why only some IDE host drivers were nominated for removal.
Please see cover-letter and patch descriptions for details.
> Therefore the only safe thing is to keep the IDE drivers around
> forever.
Uh...
> They are not a maintainence burdon, I rarely get more than 1 patch
> each merge window and most of the time those are cleanups or for the
> handling of a kernel wide API change rather than bug fixes.
In the long-term perspective having two drivers for the same hardware
is not good for the whole kernel as:
- testing efforts are divided (while number of PATA systems goes down)
- bugs/missing features in the new subsystem are not getting reported
and fixed (since it is easier to just switch back to the old stack)
- having duplicated support for the same hardware confuses users
I was hoping for incremental removal of IDE host drivers and keeping
only these that are really needed (while at the same time migrating
them slowly to libata).
I asked you about this in private mail in August 2015, you told me to
bring this on the list. I did it (with these patches) in February
2016. After two pings and months of waiting for a reply all I get is
is a quick NAK?
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply
* Re: [RFC PATCH 00/19] ide: remove deprecated host drivers (part 1)
From: David Miller @ 2016-12-08 17:58 UTC (permalink / raw)
To: b.zolnierkie; +Cc: linux-ide, linux-kernel, tj, gnomes, sergei.shtylyov
In-Reply-To: <1861504.e0fxpIs7Qv@amdc3058>
From: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date: Thu, 08 Dec 2016 18:14:33 +0100
> I asked you about this in private mail in August 2015, you told me to
> bring this on the list. I did it (with these patches) in February
> 2016. After two pings and months of waiting for a reply all I get is
> is a quick NAK?
Yep, that's how much effort, consideration, and time a deprecated
subsystem deserves.
^ permalink raw reply
* [GIT PULL] libata fixes for v4.9-rc8
From: Tejun Heo @ 2016-12-09 14:22 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-kernel, linux-ide
Hello, Linus.
This is quite late but SCT Write Same support added during this cycle
is broken subtly but seriously and it'd be best to disable it before
v4.9 gets released.
This pull request contains two commits - one low impact sata_mv fix
and the mentioned disabling of SCT Write Same.
Thanks.
The following changes since commit 6929ef385e09c0065b87fda3e7b872a5070ac783:
ahci: always fall back to single-MSI mode (2016-11-21 11:06:57 -0500)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git for-4.9-fixes
for you to fetch changes up to e185934ff94466b4a449165e5f1c164a44d005f2:
libata-scsi: disable SCT Write Same for the moment (2016-12-07 16:29:09 -0500)
----------------------------------------------------------------
Nicolai Stange (1):
libata-scsi: disable SCT Write Same for the moment
Uwe Kleine-König (1):
ata: sata_mv: check for errors when parsing nr-ports from dt
drivers/ata/libata-scsi.c | 1 +
drivers/ata/sata_mv.c | 15 ++++++++++++++-
2 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index c4eb4ae..8e575fb 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
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index efc48bf..823e938 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -4090,7 +4090,20 @@ static int mv_platform_probe(struct platform_device *pdev)
/* allocate host */
if (pdev->dev.of_node) {
- of_property_read_u32(pdev->dev.of_node, "nr-ports", &n_ports);
+ rc = of_property_read_u32(pdev->dev.of_node, "nr-ports",
+ &n_ports);
+ if (rc) {
+ dev_err(&pdev->dev,
+ "error parsing nr-ports property: %d\n", rc);
+ return rc;
+ }
+
+ if (n_ports <= 0) {
+ dev_err(&pdev->dev, "nr-ports must be positive: %d\n",
+ n_ports);
+ return -EINVAL;
+ }
+
irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
} else {
mv_platform_data = dev_get_platdata(&pdev->dev);
^ permalink raw reply related
* Re: [PATCH] pata_legacy: Allow disabling of legacy PATA device probes on non-PCI systems
From: Bartlomiej Zolnierkiewicz @ 2016-12-12 12:21 UTC (permalink / raw)
To: whiteheadm; +Cc: Tejun Heo, One Thousand Gnomes, Sergei Shtylyov, linux-ide
In-Reply-To: <CAP8WD_bUW9cAAQpvenL73sxvpoxNYwZdRqpj92YWEyanK51+0g@mail.gmail.com>
Hi,
On Monday, December 05, 2016 09:19:35 AM tedheadster wrote:
> Tejun,
> that new patch worked better.
>
> Here is the dmesg output:
>
> [ 34.347350] scsi0 : pata_legacy
> [ 34.367366] ata1: PATA max PIO4 cmd 0x1f0 ctl 0x3f6 irq 14
> [ 34.523330] ata1.00: ATA-4: QUANTUM FIREBALL CR8.4A, A5U.1200, max UDMA/66
> [ 34.524804] ata1.00: 16514064 sectors, multi 0: LBA
> [ 34.525747] ata1.00: configured for PIO
> [ 34.569330] scsi 0:0:0:0: Direct-Access ATA QUANTUM
> FIREBALL A5U. PQ: 0 ANSI: 5
> [ 34.655313] sd 0:0:0:0: [sda] 16514064 512-byte logical blocks:
> (8.45 GB/7.87 GiB)
> [ 34.674309] sd 0:0:0:0: [sda] Write Protect is off
> [ 34.675683] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
> [ 34.689347] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
> enabled, doesn't support DPO or FUA
> [ 34.691283] sd 0:0:0:0: Attached scsi generic sg0 type 0
> [ 34.800293] sda: sda1 sda2 sda3 sda4
> [ 34.890325] sd 0:0:0:0: [sda] Attached SCSI disk
> [ 34.976270] scsi1 : pata_legacy
> [ 34.999263] ata2: PATA max PIO4 cmd 0x170 ctl 0x376 irq 15
> [ 35.448191] scsi2 : pata_legacy
> [ 35.486192] ata3: PATA max PIO4 cmd 0x1e8 ctl 0x3ee irq 11
> [ 35.997114] scsi3 : pata_legacy
> [ 36.051103] ata4: PATA max PIO4 cmd 0x168 ctl 0x36e irq 10
> [ 36.384057] genirq: Flags mismatch irq 8. 00000000 (platform) vs.
> 00000000 (rtc0)
> [ 36.571024] scsi4 : pata_legacy
> [ 36.626014] ata5: PATA max PIO4 cmd 0x160 ctl 0x366 irq 12
> [ 42.143223] EXT4-fs (sda4): mounting ext3 file system using the
> ext4 subsystem
>
> and /proc/interrupts looks good:
>
> CPU0
> 0: 558552 XT-PIC-XT-PIC timer
> 1: 337 XT-PIC-XT-PIC i8042
> 2: 0 XT-PIC-XT-PIC cascade
> 4: 1 XT-PIC-XT-PIC
> 8: 0 XT-PIC-XT-PIC rtc0
> 14: 51538 XT-PIC-XT-PIC platform
Thank you for testing.
Tejun, is this information sufficient to fix the issue or do you still
want Matthew to test your last debug patch?
[ http://marc.info/?l=linux-ide&m=148096582017930&w=2 ]
> I would still like to get my patch in. If you have a motherboard where
> you cannot disable the secondary hard drive controllers, the
> pata_legacy driver will detect them and allocate the interrupt. Some
If there are no devices attached to the controller, the driver will
free the resources so I don't quite get what would be the issue here.
Could you please explain it more?
> way to disable this behavior is useful.
>
> - Matthew
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply
* Re: [RESEND PATCH] arm: assabet_defconfig: disable IDE subsystem
From: Bartlomiej Zolnierkiewicz @ 2016-12-12 12:45 UTC (permalink / raw)
To: Sekhar Nori
Cc: Russell King, Arnd Bergmann, Dmitry Eremin-Solenikov,
Kevin Hilman, linux-kernel, linux-ide, Olof Johansson,
linux-arm-kernel
In-Reply-To: <578CEB74.2080002@ti.com>
Hi,
On Monday, July 18, 2016 08:15:08 PM Sekhar Nori wrote:
> On Friday 15 July 2016 08:45 PM, Kevin Hilman wrote:
> > Arnd Bergmann <arnd@arndb.de> writes:
> >
> >> On Wednesday, July 13, 2016 12:59:23 PM CEST Bartlomiej Zolnierkiewicz wrote:
> >>>
> >>> On Friday, July 08, 2016 10:23:48 PM Arnd Bergmann wrote:
> >>>> On Friday, July 8, 2016 5:24:41 PM CEST Bartlomiej Zolnierkiewicz wrote:
> >>>>> This patch disables deprecated IDE subsystem in assabet_defconfig
> >>>>> (no IDE host drivers are selected in this config so there is no
> >>>>> valid reason to enable IDE subsystem itself).
> >>>>>
> >>>>> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> >>>>> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> >>>>
> >>>> I think the series makes a lot of sense. I have checked your assertions
> >>>> in the changelogs and found no flaws in your logic, so I think we should
> >>>> take them all through arm-soc unless there are other concerns.
> >>>
> >>> Thank you.
> >>>
> >>> Should I resend everything or just patches that were not reposted yet
> >>> (the ones that were marked as RFT initially and got no feedback)?
> >>
> >> I'd be fine with just getting a pull request with all the patches that
> >> had no negative feedback and that were not already applied (if any).
> >>
> >>>> Do you have a list of ARM defconfigs that keep using CONFIG_IDE and
> >>>> how you determined that they need it?
> >>>
> >>> The only such defconfig is davinci_all_defconfig which uses
> >>> palm_bk3710 host driver (CONFIG_BLK_DEV_PALMCHIP_BK3710).
> >>>
> >>>> I know that ARCH_RPC/ARCH_ACORN has a couple of special drivers that
> >>>> have no libata replacement, are there any others like that, or are
> >>>> they all platforms that should in theory work with libata but need
> >>>> testing?
> >>>
> >>> All platforms except ARCH_ACORN, ARCH_DAVINCI & ARCH_RPC should work
> >>> with libata.
> >>
> >> Adding Sekhar and Kevin for DaVinci: At first sight, palm_bk3710 looks
> >> fairly straightforward (meaning someone has to do a few day's work)
> >> to convert into a libata driver.
> >>
> >> As this is on on-chip controller that is part of a dm644x and dm646x,
> >> it should also not be hard to test (as long as someone can find
> >> a hard drive to plug in).
> >
> > I have a hard drive, but don't have any dm64xx hardware anymore to test
> > this. My last working dm644x board died last year.
>
> I have a working DM6446 EVM. I was able to connect a hard drive to it
> and do some basic tests with v4.6 kernel.
>
> I will look into converting the driver to libata. Might take some time
> because this is unfamiliar territory for me.
Do you need some help with it?
I can provide you with draft driver patch if you want.
I'm also on #kernel IRC channel in case you have some questions..
Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics
^ permalink raw reply
* Re: [RESEND PATCH] arm: assabet_defconfig: disable IDE subsystem
From: Sekhar Nori @ 2016-12-12 13:54 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz
Cc: Kevin Hilman, Arnd Bergmann, linux-arm-kernel, Russell King,
Dmitry Eremin-Solenikov, linux-kernel, linux-ide, Olof Johansson
In-Reply-To: <5370936.ZbqF1HU8Jz@amdc3058>
Hi Bartlomiej,
On Monday 12 December 2016 06:15 PM, Bartlomiej Zolnierkiewicz wrote:
>
> Hi,
>
> On Monday, July 18, 2016 08:15:08 PM Sekhar Nori wrote:
>> On Friday 15 July 2016 08:45 PM, Kevin Hilman wrote:
>>> Arnd Bergmann <arnd@arndb.de> writes:
>>>
>>>> On Wednesday, July 13, 2016 12:59:23 PM CEST Bartlomiej Zolnierkiewicz wrote:
>>>>>
>>>>> On Friday, July 08, 2016 10:23:48 PM Arnd Bergmann wrote:
>>>>>> On Friday, July 8, 2016 5:24:41 PM CEST Bartlomiej Zolnierkiewicz wrote:
>>>>>>> This patch disables deprecated IDE subsystem in assabet_defconfig
>>>>>>> (no IDE host drivers are selected in this config so there is no
>>>>>>> valid reason to enable IDE subsystem itself).
>>>>>>>
>>>>>>> Cc: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
>>>>>>> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
>>>>>>
>>>>>> I think the series makes a lot of sense. I have checked your assertions
>>>>>> in the changelogs and found no flaws in your logic, so I think we should
>>>>>> take them all through arm-soc unless there are other concerns.
>>>>>
>>>>> Thank you.
>>>>>
>>>>> Should I resend everything or just patches that were not reposted yet
>>>>> (the ones that were marked as RFT initially and got no feedback)?
>>>>
>>>> I'd be fine with just getting a pull request with all the patches that
>>>> had no negative feedback and that were not already applied (if any).
>>>>
>>>>>> Do you have a list of ARM defconfigs that keep using CONFIG_IDE and
>>>>>> how you determined that they need it?
>>>>>
>>>>> The only such defconfig is davinci_all_defconfig which uses
>>>>> palm_bk3710 host driver (CONFIG_BLK_DEV_PALMCHIP_BK3710).
>>>>>
>>>>>> I know that ARCH_RPC/ARCH_ACORN has a couple of special drivers that
>>>>>> have no libata replacement, are there any others like that, or are
>>>>>> they all platforms that should in theory work with libata but need
>>>>>> testing?
>>>>>
>>>>> All platforms except ARCH_ACORN, ARCH_DAVINCI & ARCH_RPC should work
>>>>> with libata.
>>>>
>>>> Adding Sekhar and Kevin for DaVinci: At first sight, palm_bk3710 looks
>>>> fairly straightforward (meaning someone has to do a few day's work)
>>>> to convert into a libata driver.
>>>>
>>>> As this is on on-chip controller that is part of a dm644x and dm646x,
>>>> it should also not be hard to test (as long as someone can find
>>>> a hard drive to plug in).
>>>
>>> I have a hard drive, but don't have any dm64xx hardware anymore to test
>>> this. My last working dm644x board died last year.
>>
>> I have a working DM6446 EVM. I was able to connect a hard drive to it
>> and do some basic tests with v4.6 kernel.
>>
>> I will look into converting the driver to libata. Might take some time
>> because this is unfamiliar territory for me.
>
> Do you need some help with it?
>
> I can provide you with draft driver patch if you want.
A draft driver patch will really help. I can test/debug. Otherwise, not
sure when I will really be able to get to this.
Regards,
Sekhar
^ permalink raw reply
* Re: [PATCH] pata_legacy: Allow disabling of legacy PATA device probes on non-PCI systems
From: Tejun Heo @ 2016-12-12 17:01 UTC (permalink / raw)
To: whiteheadm; +Cc: One Thousand Gnomes, Sergei Shtylyov, linux-ide
In-Reply-To: <CAP8WD_becq+h2=-g7t-6Pp1psmkCCvdB0YUcg+wYPocUP4dYdw@mail.gmail.com>
Hello,
On Fri, Dec 09, 2016 at 12:57:02PM -0500, tedheadster wrote:
> Tejun,
> here is the patch I applied:
>
> diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
> index 4fe9d21..5c6c578 100644
> --- a/drivers/ata/pata_legacy.c
> +++ b/drivers/ata/pata_legacy.c
> @@ -963,6 +963,9 @@ static __init int legacy_init_one(struct legacy_probe
> *probe)
> if (IS_ERR(pdev))
> return PTR_ERR(pdev);
>
> + if (!devres_open_group(&pdev->dev, legacy_init_one, GFP_KERNEL))
> + return -ENOMEM;
Can you please drop the explicit group open/remove/release?
> ret = -EBUSY;
> if (devm_request_region(&pdev->dev, io, 8, "pata_legacy") == NULL ||
> devm_request_region(&pdev->dev, io + 0x0206, 1,
> @@ -1009,11 +1012,14 @@ static __init int legacy_init_one(struct
> legacy_probe *probe)
> if (!ata_dev_absent(dev)) {
> legacy_host[probe->slot] = host;
> ld->platform_dev = pdev;
> + devres_remove_group(&pdev->dev, legacy_init_one);
> return 0;
> }
> }
> ata_host_detach(host);
> fail:
> + devres_release_group(&pdev->dev, legacy_init_one);
> + printk("XXX pata_legacy: unregistering platform dev %p\n", pdev);
> platform_device_unregister(pdev);
So, the thing is that when the platform device is released here, it
should automatically trigger release of all resources attached to it
through...
> return ret;
> }
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index a235085..8e8948e 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -214,6 +214,7 @@ static void device_release(struct kobject *kobj)
> * is deleted but alive, so release devres here to avoid
> * possible memory leak.
> */
> + printk("XXX device_release: invoking devres_release_all\n");
> devres_release_all(dev);
the devres_release_all() call here.
Can you please try to verify that devres_release_all() is being
invoked from platform device release? I'll try to see if I can repro
the problem here.
thanks.
--
tejun
^ permalink raw reply
* [V1] ata: sata_mv:- Handle return value of devm_ioremap.
From: Arvind Yadav @ 2016-12-12 17:43 UTC (permalink / raw)
To: tj; +Cc: linux-ide, linux-kernel
Here, If devm_ioremap will fail. It will return NULL.
Then hpriv->base = NULL - 0x20000; Kernel can run into
a NULL-pointer dereference. This error check will avoid
NULL pointer dereference.
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
---
drivers/ata/sata_mv.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index efc48bf..9d0cdad 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -4119,6 +4119,9 @@ static int mv_platform_probe(struct platform_device *pdev)
host->iomap = NULL;
hpriv->base = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
+ if (!hpriv->base)
+ return -ENOMEM;
+
hpriv->base -= SATAHC0_REG_BASE;
hpriv->clk = clk_get(&pdev->dev, NULL);
--
2.7.4
^ permalink raw reply related
* [GIT PULL] libata changes for v4.10-rc1
From: Tejun Heo @ 2016-12-12 18:32 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-ide, linux-kernel
Hello, Linus.
* Adam added opt-in ATA command priority support.
* There are machines which hide multiple nvme devices behind an ahci
BAR. Dan Williams proposed a solution to force-switch the mode but
deemed too hackishd. People are gonna discuss the proper way to
handle the situation in nvme standard meetings. For now, detect and
warn about the situation.
* Low level driver specific changes.
Thanks.
The following changes since commit 1001354ca34179f3db924eb66672442a173147dc:
Linux 4.9-rc1 (2016-10-15 12:17:50 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git for-4.10
for you to fetch changes up to aecec8b60422118b52e3347430ba9382e57d6d76:
ahci: warn about remapped NVMe devices (2016-12-05 14:31:24 -0500)
----------------------------------------------------------------
Adam Manzanares (4):
block: Add iocontext priority to request
ata: Enabling ATA Command Priorities
ata: ATA Command Priority Disabled By Default
ata: set ncq_prio_enabled iff device has support
Christoph Hellwig (2):
nvme: move NVMe class code to pci_ids.h
ahci: warn about remapped NVMe devices
Dan Williams (1):
ahci-remap.h: add ahci remapping definitions
Tang Yuantian (1):
ahci: qoriq: added ls1046a platform support
Vladimir Zapolskiy (4):
pata: imx: sort headers out
pata: imx: set controller PIO mode with .set_piomode callback
pata: imx: add support of setting timings for PIO modes
pata: imx: support controller modes up to PIO4
block/blk-core.c | 4 ++-
drivers/ata/ahci.c | 39 ++++++++++++++++++++++
drivers/ata/ahci_qoriq.c | 16 +++++++--
drivers/ata/libahci.c | 1 +
drivers/ata/libata-core.c | 35 +++++++++++++++++++-
drivers/ata/libata-scsi.c | 80 +++++++++++++++++++++++++++++++++++++++++++-
drivers/ata/libata.h | 2 +-
drivers/ata/pata_imx.c | 82 ++++++++++++++++++++++++++++++++--------------
drivers/nvme/host/pci.c | 3 --
include/linux/ahci-remap.h | 28 ++++++++++++++++
include/linux/ata.h | 6 ++++
include/linux/blkdev.h | 14 ++++++++
include/linux/libata.h | 5 +++
include/linux/pci_ids.h | 2 ++
14 files changed, 282 insertions(+), 35 deletions(-)
create mode 100644 include/linux/ahci-remap.h
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox