Re: [RFC/PATCH] Kdump: Disabling PCI interrupts in capture kernel

From: Vivek Goyal (vgoyal_at_in.ibm.com)
Date: 06/07/05

  • Next message: Hirokazu Takata: "[PATCH 2.6.12-rc5] m32r: Use asm-generic/div64.h"
    Date:	Mon,  6 Jun 2005 23:07:17 -0400
    To: greg@kroah.com
    
    

    Quoting Alan Stern <stern@rowland.harvard.edu>:

    > On Sat, 4 Jun 2005, Vivek Goyal wrote:
    >
    > > Hi Alan, I know very little about consoles and their working.
    > > I had a question. Even if console is being managed by platform firmware,
    > in
    > > initial states of booting, does it require interrupts to be enabled at
    > > VGA contorller (at least for the simple text mode). I was quickly
    > browsing
    > > through drivers/video/console/vgacon.c and did not look like that this
    > > console driver needed interrupts to be enabled at the controller.
    >
    > This isn't an issue for VGA, as far as I know. It applies to
    > architectures like PPC-64 and perhaps Alpha or PA-Risc. And I don't know
    > the details; ask Grant Grundler.
    >
    > > Anyway, looks like serial consoles will always work. So at least this can
    > be
    > > done for kdump case (CONFIG_CRASH_DUMP) and not generic kernel. Or, as I
    > > mentioned in previous mail, while pre-loading capture kernel, pass a
    > command
    > > line parameter containing pci dev id of console and capture kernel does not
    >
    > > disable interrupts on this console.
    >
    > I suspect you're right that implementing this only in kdump kernels will
    > work okay.
    >
    > For people interesting in reading some old threads on the subject, here
    > are some pointers:
    >
    > http://marc.theaimsgroup.com/?l=linux-usb-devel&m=111055702309788&w=2
    >
    > http://marc.theaimsgroup.com/?l=linux-kernel&m=98383052711171&w=2

    I browsed through the discussion threads quickly. Previous proposal included
    disabling the DMA as well from the devices. Currently, for kdump, we are not
    looking at disabling the DMA from the devices. So far have not run into
    any problems due to ongoing DMA (Need to look into IOMMU reprogramming aspect
    though). Following is a snippet from one of the discussion threads.

    |List: linux-usb-devel
    |Subject: [linux-usb-devel] Re: PCI device initialization and USB
    early-handoff
    |From: Grant Grundler <grundler () parisc-linux ! org>
    |Date: 2005-03-11 18:12:57
    |Message-ID: <20050311181257.GB15070 () colo ! lackof ! org>
    |[Download message RAW]
    .....

    |> > Is it feasible to have the PCI device initialization sequence disable DMA
    |> > and IRQs from the device? This could solve the problems we've been seeing
    |> > with non-quiescent devices sharing an IRQ line at startup.

    |two potential issues here:
    |o ISTR VGA devices may not like disabling Bus Master bit in the command reg.
    | But I'm blissfully ignorant of all the issues around VGA and someone
    | else will have to comment on that.
    |
    |o platform devices (e.g. bridges) that don't have PCI drivers to re-enable
    | them later. "transperent" Bridges are the only example I can come up with
    | now but expect more to come out of the woodwork as this gets widely
    | tested. Trolling through PCI quirks might flag some of the known ones.
    | I would expect a few more to show up with this change.

    |hth,
    |grant

    o Bus Master bit is not being disabled, only interrupt generation will be
      disabled and looks like at least VGA and serial consoles are not impacted
      due to disabling of interrupt. Any other consoles which require interrupt
      to be enabled for their working????

    o As per pci-to-pci bridge architecture specification revision 1.2,
      interrupt disable bit in PCI-PCI bridge is optional and if implemented,
      it will disable interrupt generation from bridge but will have no effect
      on interrupts that the bridge forwards from the PCI devices on the
      secondary bus.

      So even if interrupts are disabled on PCI-PCI bridge, interrupts generated
      by PCI devices on secondary bus are not blocked and I hope device should
      be working fine.

    The whole idea is that currently this change is kdump specific. Ofcourse there
    shall be issues which are not known yet and more devices might not
    work for kdump kernels. But at the same time kdump kernels are not supposed to
    do a great deal except capture and save the dump. So this change might not
    be of a big concern even if some devices don't work as long as kdump kernel
    can boot.

    Disabling interrupts at PCI level should increase the reliability of capturing
    the dump on newer machines with hardware compliant with PCI 2.3 or higher.
    Booting a kdump kernel with reduced functionality should always be better than
    not booting at all.

    Thanks
    Vivek

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Hirokazu Takata: "[PATCH 2.6.12-rc5] m32r: Use asm-generic/div64.h"

    Relevant Pages

    • Re: sony vaio pcg-gr390
      ... PCI-Only Interrupts: none ... Location Bus Device Pin Link IRQs ... penalty: 1050 ... isa_probe_children: disabling PnP devices ...
      (freebsd-current)
    • Re: [RFC] mmiotrace full patch, preview 1
      ... the "first" probe gets selected and executed. ... kmmio_handler, where-ever it was triggered, executes with interrupts ... enable single-stepping. ... or does disabling interrupts guarantee that? ...
      (Linux-Kernel)
    • Re: Guarantee Critical Regions in Portable code. Portable Semaphores?
      ... Disabling interrupts is the kernel level operation. ... You cannot know it's safe for sure, but a single increment or decrement ... How can the FAT driver know when it is safe to disable the interrupts ...
      (comp.arch.embedded)
    • Re: IIgs Debuggers?
      ... Are you directly disabling any interrupts? ... I do disable interrupts on the initial loading of the wavebank into the DOC RAM, but I do so *exactly* as you have mentioned. ... I deliberately chose MIDI Synth sequences that all share the same instruments and wavebank file - thereby eliminating the need to reload them. ...
      (comp.sys.apple2.programmer)
    • Re: [RFC/PATCH] Kdump: Disabling PCI interrupts in capture kernel
      ... >> console driver needed interrupts to be enabled at the controller. ... I'm more familiar with the serial consoles and how PDC interacts with them. ... send the line "unsubscribe linux-kernel" in ...
      (Linux-Kernel)