public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Khalid Aziz <khalid.aziz@hp.com>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: linux-kernel@vger.kernel.org, bhelgaas@google.com,
	linux-pci@vger.kernel.org,
	"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [PATCH] Disable Bus Master on PCI device shutdown
Date: Wed, 06 Jun 2012 12:07:40 -0600	[thread overview]
Message-ID: <1339006060.25761.689.camel@lyra> (raw)
In-Reply-To: <20120606174202.GA8750@srcf.ucam.org>

On Wed, 2012-06-06 at 18:42 +0100, Matthew Garrett wrote:
> On Wed, Jun 06, 2012 at 11:32:36AM -0600, Khalid Aziz wrote:
> 
> > Do we agree that if device shutdown routine cleanly shuts down all I/O,
> > clearing PCI Bus Mster bit should be safe?
> 
> In the absence of hardware that dislikes the bus master bit ever being 
> disabled, yes. Do we know if hardware is ever tested in that situation?

I will wait for device vendors to comment on that. I can't claim I have
tested more than a few devices that way.

> 
> > If yes, then we only have to deal with broken devices. So the approach 
> > could be to disable Bus Master bit unless the device ID matches a 
> > blacklist which we update as we find broken devices. I really don't 
> > like the idea of maintaining blacklists in the kernel for such things 
> > but is that a more practical approach? If blacklist does not sound 
> > good, maybe we can ask drivers to tell PCI subsystem if they are not 
> > ok with clearing Bus Master bit and then PCI subsystem could skip 
> > those devices.
> 
> Or we could just put responsibility on the drivers to ensure that the 
> hardware won't continue doing any DMA, either by shutting down the 
> engines or clearing the bit.
> 

I assume device shutdown routine should stop all I/O and shutting down
DMA engine. Disabling Bus Master bit is just an extra measure of safety.
I do like the idea of disabling Bus Master bit in device shutdown
routine. After all, drivers know their hardware best. On the other hand,
it is change to lots of driver code to implement this which means it
will end up happening slowly over period of time. I don't mind doing the
work up front on a good number of drivers I feel comfortable modifying.
I am ok with pulling out code to clear bus master bit from PCI subsystem
and replacing it with modified shutdown routines for a few drivers to
start with.

Does any one see any other issues with modifying driver shutdown
routines for disabling Bus Master bit? Bjorn, any opinions?

====================================================================
Khalid Aziz                                         Unix Systems Lab
(970)898-9214                                        Hewlett-Packard
khalid.aziz@hp.com                                  Fort Collins, CO


  reply	other threads:[~2012-06-06 18:07 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-27 19:00 [PATCH] Disable Bus Master on PCI device shutdown Khalid Aziz
2012-05-03 23:52 ` Bjorn Helgaas
2012-05-04 17:15   ` Bjorn Helgaas
2012-06-06 13:50 ` Matthew Garrett
2012-06-06 16:17   ` Khalid Aziz
2012-06-06 16:27     ` Matthew Garrett
2012-06-06 17:32       ` Khalid Aziz
2012-06-06 17:42         ` Matthew Garrett
2012-06-06 18:07           ` Khalid Aziz [this message]
2012-06-06 19:42             ` Eric W. Biederman
2012-06-06 20:09               ` Matthew Garrett
2012-06-07 17:43                 ` Khalid Aziz
2012-06-07 14:21               ` Khalid Aziz
2012-06-06 20:16             ` Myron Stowe
2012-06-06 23:03               ` Khalid Aziz
2012-06-06 23:18                 ` Myron Stowe
2012-06-06 20:50   ` Alan Cox
2012-06-07 17:07     ` Andi Kleen
2012-06-07 17:13       ` Alan Cox
2012-06-07 17:36       ` Khalid Aziz
2012-06-07 17:08   ` Andi Kleen

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=1339006060.25761.689.camel@lyra \
    --to=khalid.aziz@hp.com \
    --cc=bhelgaas@google.com \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mjg59@srcf.ucam.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox