Matt Sealey | 9 Feb 21:19
Gravatar

Timing computation, values missing from table (in spec though)

A question so I can see if I can use ata_timing_compute or possibly improve it..

The current mode timings list seems to be missing a few timings we
need that cannot possibly (and don't seem to be attempted) to be
resolved from the ata_timings table in libata-core.c.

We have a bank of registers in our ATA controller where these values
need setting; is it that the timings table is missing the values (and
the same true of the one in ide-timings.c) no
other drive controller actually needed such fine timings and would
implement them as per the spec minimums by itself? We need to actually
set the specific time in ATA clocks in those
registers, and there is a register for every timing reference in the
ATA spec tables and diagrams.. specifically t4 and t9 are missing for
PIO (and tA would be derived for iordy by the current code, right? But
we also need to set tRD which seems not to be) and for DMA, several
others (tM for MWDMA) and I am really confused where the values for
UDMA are meant to be derived for the controller since none of them are
listed in the comments for struct ata_timing.

Is it a good or bad idea to expand the table to include the extra
timings, or should we just include a custom table of timings and
manage the situation ourselves? Part of my reason for wanting to use
the libata core timings is because of all the safety checks which I
don't get with a custom blob of numbers pulled from some older source
code that I have no idea how they were derived..

--

-- 
Matt Sealey <matt <at> genesi-usa.com>
Product Development Analyst, Genesi USA, Inc.
(Continue reading)

Matt Sealey | 9 Feb 20:43
Gravatar

Braindead newbie questions, DMA-backed PIO

Hi guys,

I have some probably quite simple questions which I am having a hard
time figuring out.

I am working on improving DMA support for the pata_imx driver. While
supporting normal MWDMA and UDMA modes is fairly easy (the SoC
DMA controller handles it almost transparently), for PIO mode I intend
to enhance it by replacing ata_sff_data_xfer with something that is
backed with a little more involved on DMA (basically using the DMA
unit to transfer data to the 16-bit drive data register).

However, I can't figure out (because there are no solid examples) if I
can act on the buffer data in the same way as I would in a DMA
function
by mapping sg's and doing a standard dmaengine slave transfer then
waiting for it to complete (thus relieving us of having to do
expensive
16-bit CPU I/O to a device register, and hopefully allowing the kernel
or userspace to do something else like play audio or whatever while we
wait for the slave transfer to complete). I assume it should all be
fine, but I just want to be super sure before I start scratching my
head over
something fundamentally impossible.

The other question semi-related is whether I really need to, as in the
current implementation, use the ata_sff_data_xfer_noirq (or a
derivative of
it) variant as this causes some incredible stuttering in the system
and impacts things like audio. What exactly are we protecting against
(Continue reading)

Mr.Patrick Otah | 8 Feb 08:28
Picon
Favicon
Gravatar

Be Informed,


Be Informed,

Your Compensation BANK DRAFT worth of ($1.5 Million USD) was converted
into ATM-Card which you can withdraw in any ATM Cash Point Machine
Worldwide .Your ATM Card have been programmed by the issuing bank"
<<UNITED BANK FOR AFRICA» and register it with DHL. for delivery. Contact
DHL COMPANY via Email:(dhlfastcourier <at> w.cn) Mr.Elias Ahoueke Contact them
with your information for delivery.

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Amit Sahrawat | 3 Feb 13:59
Picon
Gravatar

[PATCH 1/1] scsi: retrieve cache mode using ATA_16 if normal routine fails

It has been observed that a number of USB HDD's do not respond correctly
to SCSI mode sense command(retrieve caching pages) which results in their
Write Cache being discarded by queue requests i.e., WCE if left set to
'0'(disabled).
This results in a number of Filesystem corruptions, when the device
is unplugged abruptly.

So, in order to identify the devices correctly - give it
a last try using ATA_16 after failure from normal routine.

Signed-off-by: Amit Sahrawat <a.sahrawat <at> samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon <at> samsung.com>

---
 drivers/ata/libata-scsi.c |   51 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/sd.c         |   17 +++++++++++++++
 include/linux/libata.h    |    3 ++
 3 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 508a60b..d5b00e6 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -562,6 +562,57 @@ error:
 }

 /**
+ *      ata_get_cachestatus - Handler for to get WriteCache Status
+ *                      using ATA_16 scsi command
+ *      @scsidev: Device to which we are issuing command
(Continue reading)

Amit Sahrawat | 3 Feb 13:26
Picon
Gravatar

PATCH 1/1] scsi: retrieve cache mode using ATA_16 if normal routine fails

It has been observed that a number of USB HDD's do not respond correctly
to SCSI mode sense command(retrieve caching pages) which results in their
Write Cache being discarded by queue requests i.e., WCE if left set to
'0'(disabled).
This results in a number of Filesystem corruptions, when the device
is unplugged abruptly.

So, in order to identify the devices correctly - give it
a last try using ATA_16 after failure from normal routine.

Signed-off-by: Amit Sahrawat <a.sahrawat <at> samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon <at> samsung.com>

---
 drivers/ata/libata-scsi.c |   51 +++++++++++++++++++++++++++++++++++++++++++++
 drivers/scsi/sd.c         |   17 +++++++++++++++
 include/linux/libata.h    |    3 ++
 3 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 508a60b..d5b00e6 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -562,6 +562,57 @@ error:
 }

 /**
+ *      ata_get_cachestatus - Handler for to get WriteCache Status
+ *                      using ATA_16 scsi command
+ *      @scsidev: Device to which we are issuing command
(Continue reading)

James Bottomley | 31 Jan 21:34

LSF/MM summit deadline on Sunday

Hi everyone,

Just a reminder that if you'd like to attend the LSF/MM summit on
April 1-2, the deadline to apply is February 5th at the end of this
week. See below for more details.

If you did not already do so, please send [LSF/MM TOPIC] suggestions,
or request to [ATTEND], to lsf-pc <at> lists.linux-foundation.org

Invitations will go out next week: so if you send a TOPIC or ATTEND
mail now, you should expect confirmation next week - numbers
permitting. We shall probably be unable to fulfil late requests to
attend.

Thank you, and hope to see you soon :).

----- Forwarded message -----

Date: Wed, 21 Dec 2011 15:43:48 +0100
From: Andrea Arcangeli <aarcange <at> redhat.com>
To: linux-mm <at> kvack.org
Subject: [CFP] Linux Storage, Filesystem & Memory Management Summit 2012 (April 1-2)

The annual Linux Storage, Filesystem and Memory Management Summit for
2012 will be held on the 2 days preceding the Linux Foundation
Collaboration Summit at Hotel Nikko in San Francisco, CA:

	https://events.linuxfoundation.org/events/lsfmm-summit
	https://events.linuxfoundation.org/events/collaboration-summit/

(Continue reading)

walt | 30 Jan 15:01
Picon

cfq / iosched bug reports?

Is this the appropriate list for reporting cfq and ioscheduler bugs?

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Dan Williams | 24 Jan 08:50
Picon
Favicon

[PATCH v7 0/6] libsas error handling + discovery v7

Changes since v6: http://marc.info/?l=linux-scsi&m=132711081125550&w=2

1/ "isci: kill iphy->isci_port lookups": refreshed to fix a build error on
    32-bit.  I think it is time for these changes to get some soak time in
    -next.

2/ "libsas: improve debug statements": changed 'routing char' for
    table-to-table capable expanders to 'U' per Doug.

3/ "libsas: let libata recover links that fail to transmit initial
    sig-fis": no functional changes, content rebased due to note 2.

4/ "libsas: async ata scanning": fixed to close potential crash if eh is
    already active when libsas tries to probe a new device.

5/ new "libsas: fix lifetime of SAS_HA_FROZEN": slub debug caught a
    regression due to SAS_HA_FROZEN preventing eh_scmds from being completed
    normally.

6/ new "libsas: revert ata srst": originally added to take advantage of
    the srst generation capabilities of isci, but since isci has opted not
    to use it we no longer need to carry it upstream.

[PATCH 0/1] isci: kill iphy->isci_port lookups
[PATCH 0/2] libsas: improve debug statements
[PATCH 0/3] libsas: let libata recover links that fail to transmit initial sig-fis
[PATCH 0/4] libsas: async ata scanning
[PATCH 0/5] libsas: fix lifetime of SAS_HA_FROZEN
[PATCH 0/6] libsas: revert ata srst

(Continue reading)

Seth Heasley | 24 Jan 01:29
Picon
Favicon
Gravatar

[PATCH 3/6] ata_piix: IDE-mode SATA patch for Intel Lynx Point DeviceIDs

This patch adds the IDE-mode SATA DeviceIDs for the Intel Lynx Point PCH.

Signed-off-by: Seth Heasley <seth.heasley <at> intel.com>
---
 drivers/ata/ata_piix.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index 69ac373..9554f94 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -321,6 +321,14 @@ static const struct pci_device_id piix_pci_tbl[] = {
 	{ 0x8086, 0x1e08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
 	/* SATA Controller IDE (Panther Point) */
 	{ 0x8086, 0x1e09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+	/* SATA Controller IDE (Lynx Point) */
+	{ 0x8086, 0x8c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
+	/* SATA Controller IDE (Lynx Point) */
+	{ 0x8086, 0x8c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb },
+	/* SATA Controller IDE (Lynx Point) */
+	{ 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
+	/* SATA Controller IDE (Lynx Point) */
+	{ 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata },
 	{ }	/* terminate list */
 };

--

-- 
1.7.4.4

--
(Continue reading)

Dan Williams | 21 Jan 02:50
Picon
Favicon

[PATCH v6 0/7] libsas error handling + discovery v6

Changes since v5: http://marc.info/?l=linux-scsi&m=132656475829637&w=2

1/ Reworked "libsas: let libata recover links that fail to transmit initial
   sig-fis" to better handle problematic expanders and slow to attach ata
   devices.  libsas will now validate linkrate and take 'device-type' into
   account when determining if a new device is attached.

2/ Added support for asynchronously scanning ata devices.

3/ Reworked "libsas: fix sas_unregister_ports vs sas_drain_work" as lockdep
   complained about the original.

4/ New patch "libsas: fix sas port naming" makes direct-attached device naming
   more predictable and consistent with expander attached device naming.

5/ Made scan order more predictable by ensuring that regardless of device type
   we always attach in discovery order.  Slow to link devices will still be
   scanned out of order, link needs to be in at least the 'stp pending' state
   before the device will be considered attached.

---

Dan Williams (7):
      libsas: fix sas_unregister_ports vs sas_drain_work
      libsas: improve ata debug statements
      libsas: fix sas port naming
      libsas: let libata recover links that fail to transmit initial sig-fis
      libsas: delete device on sas address changed
      libsas: restore scan order
      libsas: async ata scanning
(Continue reading)

qiang.liu | 20 Jan 03:19
Favicon

[PATCH V2] fsl-sata: I/O load balancing

From: Qiang Liu <qiang.liu <at> freescale.com>

Reduce interrupt signals through reset Interrupt Coalescing Control Reg.
Provide dynamic method to adjust interrupt signals and timer ticks by sysfs.
It is a tradeoff for different applications.

Signed-off-by: Qiang Liu <qiang.liu <at> freescale.com>
---

change for V2
	support dynamic config interrupt coalescing register by /sysfs
	test random small file with iometer
Description:
  1. fsl-sata interrupt will be raised 130 thousand times when write 8G file
    (dd if=/dev/zero of=/dev/sda2 bs=128K count=65536);
  2. most of interrupts raised because of only 1-4 commands completed;
  3. only 30 thousand times will be raised after set max interrupt threshold,
    more interrupts are coalesced as the description of ICC;

Test methods and results:
  1. test sequential large file performance,
  [root <at> p2020ds root]# echo 31 524287 > \
  	/sys/devices/soc.0/ffe18000.sata/intr_coalescing
  [root <at> p2020ds root]# dd if=/dev/zero of=/dev/sda2 bs=128K count=65536 &
  [root <at> p2020ds root]# top

  CPU %  |  dd   |  flush-8:0 | softirq
  ---------------------------------------
  before | 20-22 |    17-19   |    7
  ---------------------------------------
(Continue reading)


Gmane