All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Mark Lord <liml@rtr.ca>, Jeff Garzik <jeff@garzik.org>,
	"zhao, forrest" <forrest.zhao@intel.com>,
	Tejun Heo <htejun@gmail.com>,
	linux-ide@vger.kernel.org
Subject: Re: [PATCH] Re: 2.6.17-rc5-git1: regression: resume from suspend(RAM)      fails: libata issue
Date: Sun, 28 May 2006 00:35:23 +0200	[thread overview]
Message-ID: <20060527223523.GD364@suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0605271519250.5623@g5.osdl.org>

On Sat, May 27 2006, Linus Torvalds wrote:
> 
> 
> On Sun, 28 May 2006, Jens Axboe wrote:
> > 
> > Works for me too, I changed the delay to match the 200000 above just to
> > be on the safe side.
> 
> That's insane. That was _not_ what I expected. That wasn't actually 
> supposed to fix anything at all for somebody who had problems.

I realize that, but that is what happens. And I don't think it's a
fluke, it's pretty much 100% reliably failed for me in the later 2.6.17
kernels and this one did 5 resume cycles without even complaining.

> Maybe you didn't remove the half-second delay (which is why it still works 
> for you)? I'd like to see what bits are set when it _isn't_ there, to see 
> if there's something we can trigger on..

The 500msec delay is gone, I can attest to that. This is a straight diff
of what I booted and which apparently works:

diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index fa476e7..526d1e1 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -4297,6 +4297,13 @@ static int ata_start_drive(struct ata_po
 int ata_device_resume(struct ata_port *ap, struct ata_device *dev)
 {
 	if (ap->flags & ATA_FLAG_SUSPENDED) {
+#if 0
+		ata_busy_wait(ap, ATA_BUSY, 200000);
+#else
+		u8 stat = ata_wait_idle(ap);
+		if (!ata_ok(stat))
+			printk("ATA status %02x\n", stat);
+#endif
 		ap->flags &= ~ATA_FLAG_SUSPENDED;
 		ata_set_mode(ap);
 	}
@@ -4850,6 +4857,7 @@ int ata_pci_device_resume(struct pci_dev
 	pci_restore_state(pdev);
 	pci_enable_device(pdev);
 	pci_set_master(pdev);
+	//msleep(500);
 	return 0;
 }
 #endif /* CONFIG_PCI */
diff --git a/include/linux/libata.h b/include/linux/libata.h
index b80d2e7..80fb1f9 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -742,7 +742,7 @@ static inline u8 ata_busy_wait(struct at
 
 static inline u8 ata_wait_idle(struct ata_port *ap)
 {
-	u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 1000);
+	u8 status = ata_busy_wait(ap, ATA_BUSY | ATA_DRQ, 200000);
 
 	if (status & (ATA_BUSY | ATA_DRQ)) {
 		unsigned long l = ap->ioaddr.status_addr;

-- 
Jens Axboe


  parent reply	other threads:[~2006-05-27 22:36 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-26  9:04 [PATCH] Add ata_piix's own resume function zhao, forrest
2006-05-26 23:05 ` Jens Axboe
2006-05-26 23:28   ` Jeff Garzik
2006-05-26 23:38     ` Jeff Garzik
2006-05-26 23:50       ` Jeff Garzik
2006-05-27  6:21     ` Jens Axboe
2006-05-27  6:31       ` Jeff Garzik
2006-05-27  6:46         ` Jens Axboe
2006-05-27  6:52           ` Jeff Garzik
2006-05-27  3:22   ` 2.6.17-rc5-git1: regression: resume from suspend(RAM) fails: libata issue Mark Lord
2006-05-27  3:32     ` Linus Torvalds
2006-05-27  3:41       ` Jeff Garzik
2006-05-27  4:00       ` [PATCH] " Jeff Garzik
2006-05-27 18:23         ` Mark Lord
2006-05-27 18:47           ` Linus Torvalds
2006-05-27 19:01             ` Jeff Garzik
2006-05-27 19:06               ` Jeff Garzik
2006-05-27 19:01             ` Mark Lord
2006-05-27 20:45             ` Jens Axboe
2006-05-27 20:58               ` Jeff Garzik
2006-05-27 21:11                 ` Jens Axboe
2006-05-27 21:17                   ` Jeff Garzik
2006-05-27 21:20                     ` Jens Axboe
2006-05-27 21:23                       ` Mark Lord
2006-05-27 21:25                         ` Jens Axboe
2006-05-27 21:30                         ` Mark Lord
2006-05-27 21:24                       ` Jeff Garzik
2006-05-27 21:26                         ` Jens Axboe
2006-05-27 21:31                         ` Mark Lord
2006-05-27 21:32                           ` Jeff Garzik
2006-05-27 21:33                         ` Jens Axboe
2006-05-27 21:34                           ` Jeff Garzik
2006-05-27 21:37                             ` Mark Lord
2006-05-27 21:51                               ` Jeff Garzik
2006-05-27 21:41                             ` Tejun Heo
2006-05-27 21:45                               ` Jeff Garzik
2006-05-27 21:38                       ` Linus Torvalds
2006-05-27 21:50                         ` Jeff Garzik
2006-05-27 21:57                           ` Linus Torvalds
2006-05-27 22:11                             ` Jeff Garzik
2006-05-27 21:50                       ` Linus Torvalds
2006-05-27 21:53                         ` Jeff Garzik
2006-05-27 22:14                           ` Linus Torvalds
2006-05-27 22:06                         ` Mark Lord
2006-05-27 22:11                           ` Jens Axboe
2006-05-27 22:13                             ` Jeff Garzik
2006-05-27 22:15                               ` Jens Axboe
2006-05-27 22:15                             ` Mark Lord
2006-05-27 22:17                               ` Jens Axboe
2006-05-27 22:21                             ` Linus Torvalds
2006-05-27 22:29                               ` Mark Lord
2006-05-27 22:36                                 ` Jens Axboe
2006-05-27 22:48                                   ` Mark Lord
2006-05-27 22:53                                     ` Jens Axboe
2006-05-27 22:55                                       ` Jeff Garzik
2006-05-27 23:10                                       ` Mark Lord
2006-05-28  0:24                                         ` Linus Torvalds
2006-05-28  0:26                                           ` Linus Torvalds
2006-05-28  0:56                                             ` Jeff Garzik
2006-05-28  0:35                                           ` Linus Torvalds
2006-05-28  0:51                                           ` Mark Lord
2006-05-28  0:53                                           ` Jeff Garzik
2006-05-28  0:56                                             ` Mark Lord
2006-05-28  1:01                                             ` Linus Torvalds
2006-05-28  1:03                                               ` Jeff Garzik
2006-05-28  1:01                                           ` Jeff Garzik
2006-05-28 15:28                                             ` [PATCH] 2.6.17-rc5: the latest consensus libata resume fix Mark Lord
2006-05-28 17:14                                               ` Jens Axboe
2006-05-28 19:05                                                 ` Jeff Garzik
2006-05-28 19:18                                                   ` Mark Lord
2006-05-28 20:10                                                     ` Jeff Garzik
2006-05-28 20:27                                                       ` Mark Lord
2006-05-28 22:28                                                       ` Jens Axboe
2006-05-29  1:28                                                         ` Jeff Garzik
2006-05-29  2:53                                                           ` Mark Lord
2006-05-29  3:18                                                             ` Jeff Garzik
2006-05-29  3:28                                                           ` zhao, forrest
2006-05-29  2:43                                                         ` Mark Lord
2006-05-27 22:35                               ` Jens Axboe [this message]
2006-05-27 22:52                                 ` [PATCH] Re: 2.6.17-rc5-git1: regression: resume from suspend(RAM) fails: libata issue Jeff Garzik
2006-05-27 22:54                                   ` Jens Axboe
2006-05-27 23:06                                     ` Jens Axboe
2006-05-27 22:56                                   ` Mark Lord
2006-05-27 23:03                                     ` Jeff Garzik
2006-05-27 22:18                           ` Linus Torvalds
2006-05-27 22:23                             ` Mark Lord
2006-05-27 22:43                               ` Mark Lord
2006-05-28  0:13                               ` Linus Torvalds
2006-05-27 18:54           ` Jeff Garzik
2006-05-27 19:08             ` Mark Lord
2006-05-27 19:15               ` Jeff Garzik
2006-05-27 19:24                 ` Mark Lord
2006-05-27 20:24                   ` Jens Axboe
2006-05-27  6:29       ` Jens Axboe
2006-05-27  6:36         ` Jeff Garzik
2006-05-27  7:01           ` Jens Axboe
2006-05-27  7:06             ` Jeff Garzik
2006-05-27 18:46         ` Mark Lord
2006-05-27  3:35     ` Jeff Garzik
2006-05-27  6:20     ` Jens Axboe

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=20060527223523.GD364@suse.de \
    --to=axboe@suse.de \
    --cc=forrest.zhao@intel.com \
    --cc=htejun@gmail.com \
    --cc=jeff@garzik.org \
    --cc=liml@rtr.ca \
    --cc=linux-ide@vger.kernel.org \
    --cc=torvalds@osdl.org \
    /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.