linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jesse Barnes <jesse.barnes@intel.com>
To: David Miller <davem@davemloft.net>
Cc: zaitcev@redhat.com, jg@laptop.org, linux-kernel@vger.kernel.org
Subject: Re: BSOD
Date: Mon, 19 Mar 2007 12:54:36 -0700	[thread overview]
Message-ID: <200703191254.36373.jesse.barnes@intel.com> (raw)
In-Reply-To: <20070319.123836.39155546.davem@davemloft.net>

On Monday, March 19, 2007 12:38 pm David Miller wrote:
> All of this talk makes me appreciate what happens on Sparc machines
> even though it has more often than not been ridiculed.
>
> There the firmware sets the resolution and that's basically what
> the kernel and X uses, no mode changes are performed.
>
> With that kind of setup even the system firmware (such as OFW) can
> render error messages onto the console while X is active.
>
> The disadvantage of course is that you're stuck with whatever video
> mode you configured the firmware to use.  The advantage is that you
> always get crash messages and neither X nor the kernel framebuffer
> driver need to know how to switch modes.

That certainly keeps things simple, but most machines force us into a 
more flexible approach. :)

> Back to the main discussion, when we get an OOPS you can basically
> assume that nothing works.  So I definitely agree with Peter.
> There is no way we should try to execute something so non-trivial
> as a mode switch when the kernel is on it's last legs.
>
> There are four pieces of information the kernel needs from the X
> server when it switches modes in order to do this:
>
> 1) pixel resolution
> 2) frame buffer base, should be specified in an extremely
>    portable a manner (this means NOT using physical addresses
>    or just PCI addresses), perhaps a PCI device specifier,
>    BAR index, and offset from that BAR.
> 3) frame buffer w-skip (ie. how many bytes to get to the next
>    scanline)
> 4) depth/bpp
>
> This is also what the most minimal kernel framebuffer driver needs in
> order to support a chip.
>
> I understand that there are chips that can only be rendered into
> using DMA or indirect accesses, that's a very real and tough problem
> to fix. There is also the issue of making sure the graphics card
> accelerator is not rendering anything (ie. it's pipeline FIFO has
> emptied) when we try to render a panic message.

I'm working on an approach that will teach the DRM layer about 
modesetting, which should address all the problems above, and also 
allow flexible uses like multihead and (I hope, though this is far 
fetched) things like a separate head for a kernel level debugger.

As for what happens at panic time, if the kernel knows how to modeset we 
can do whatever we want:  conservatively clear an appropriate scanout 
buffer and render our panic there, switch into a better mode to dump 
the panic if we think that's possible, or just hang without any output 
like we do today.

Kernel based modesetting should get us a lot of things:
  o robust suspend/resume support
  o some more independence from X for complex gfx setups
  o a good mode at early boot time
and several others I'm leaving out at the moment.  On the downside, the 
modesetting layer will be a chunk of new code, and require enhanced 
chip specific mode setting code to be added to the drm/fb drivers.

Jesse

  reply	other threads:[~2007-03-19 19:54 UTC|newest]

Thread overview: 187+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-28  5:16 Linux 2.6.21-rc2 Linus Torvalds
2007-02-28  5:50 ` Gabriel C
2007-02-28  7:13 ` [PATCH] affinity is not defined in non-smp kernels - i386 Fernando Luis Vázquez Cao
2007-02-28  7:16   ` [PATCH] affinity is not defined in non-smp kernels - i386 (v2) Fernando Luis Vázquez Cao
2007-02-28  7:24   ` [PATCH] affinity is not defined in non-smp kernels - i386 Eric W. Biederman
2007-02-28 17:31     ` Bill Davidsen
2007-02-28 18:21       ` Eric W. Biederman
2007-02-28 18:30       ` Linus Torvalds
2007-02-28  7:42   ` [PATCH] affinity is not defined in non-smp kernels - i386 (v2) Fernando Luis Vázquez Cao
2007-02-28  7:17 ` [PATCH] affinity is not defined in non-smp kernels - x86_64 Fernando Luis Vázquez Cao
2007-02-28  7:23 ` Linux 2.6.21-rc2 David Brown
2007-02-28  7:39 ` Brice Goglin
2007-02-28 13:09   ` Eric W. Biederman
2007-02-28 16:44     ` David Brown
2007-02-28 17:07       ` Randy Dunlap
2007-02-28  7:41 ` [PATCH] affinity is not defined in non-smp kernels - x86_64 Fernando Luis Vázquez Cao
2007-02-28  7:59 ` Linux 2.6.21-rc2 Damien Wyart
2007-03-05  1:50 ` [1/6] 2.6.21-rc2: known regressions Adrian Bunk
2007-03-05  2:26   ` Andrew Morton
2007-03-05  3:35   ` Greg KH
2007-03-06  0:55     ` Johannes Berg
2007-03-05  4:01   ` Mark Lord
2007-03-05  4:34     ` Greg KH
2007-03-05 12:42       ` Marcel Holtmann
2007-03-05  4:34   ` [BUG} usb regression in 2.6.21-rc2-git3 Mark Lord
2007-03-05  4:37     ` [BUG] sdhci regression in 2.6.21-rc2 Mark Lord
2007-03-05  5:36       ` Pierre Ossman
2007-03-05 14:25         ` Mark Lord
2007-03-05 15:19           ` Mark Lord
2007-03-06  4:17             ` Andrew Morton
2007-03-06  5:47               ` Pierre Ossman
2007-03-06  6:09                 ` Andrew Morton
2007-03-06  7:23                   ` Pierre Ossman
2007-03-05 15:20           ` Pierre Ossman
2007-03-05 15:23             ` Pierre Ossman
2007-03-05 15:35               ` Mark Lord
2007-03-05 16:00                 ` Pierre Ossman
2007-03-05 16:18                   ` Mark Lord
2007-03-05  4:43     ` [BUG} usb regression in 2.6.21-rc2-git3 Mark Lord
2007-03-12 14:56     ` [BUG} usb-serial " Mark Lord
2007-03-12 15:06       ` Oliver Neukum
2007-03-12 15:13         ` Mark Lord
2007-03-12 15:27           ` Oliver Neukum
2007-03-12 15:29           ` Greg KH
2007-03-12 15:38             ` Oliver Neukum
2007-03-12 16:03             ` Mark Lord
2007-03-12 16:10               ` Greg KH
2007-03-12 16:22                 ` Mark Lord
2007-03-12 16:11               ` Mark Lord
2007-03-12 16:14                 ` Mark Lord
2007-03-12 16:27                   ` Mark Lord
2007-03-12 16:50                     ` Mark Lord
2007-03-12 18:48                       ` Oliver Neukum
2007-03-12 20:22                         ` [PATCH] usb-serial regression (Oops) in 2.6.21-rc* Mark Lord
2007-03-12 20:33                           ` Greg KH
2007-03-12 22:20                             ` Mark Lord
2007-03-12 22:42                             ` Jim Radford
2007-03-12 22:59                               ` [PATCH] usb-serial regression fix Jim Radford
2007-03-13  0:18                                 ` Greg KH
2007-03-13  0:41                                   ` Jim Radford
2007-03-13  1:55                                     ` Mark Lord
2007-03-13  9:14                                       ` Jim Radford
2007-03-13 10:14                                         ` Oliver Neukum
2007-03-13 13:39                                           ` Mark Lord
2007-03-13 13:50                                             ` Oliver Neukum
2007-03-13 13:55                                         ` Mark Lord
2007-03-13 15:30                                           ` Jim Radford
2007-03-13 16:35                                             ` Mark Lord
2007-03-12 16:28                 ` [BUG} usb-serial regression in 2.6.21-rc2-git3 Oliver Neukum
2007-03-12 15:31       ` Greg KH
2007-03-07 11:06   ` [1/6] 2.6.21-rc2: known regressions Jeff Garzik
2007-03-07 22:17     ` Albert Hopkins
2007-03-05  1:50 ` [2/6] " Adrian Bunk
2007-03-07 11:09   ` Jeff Garzik
2007-03-07 16:10     ` Linus Torvalds
2007-03-08 12:03     ` Ash Milsted
2007-03-08 12:31   ` Michael S. Tsirkin
2007-03-08 15:11     ` Jeff Chua
2007-03-08 18:01     ` Linus Torvalds
2007-03-08 19:06       ` Ingo Molnar
2007-03-08 19:10         ` Ingo Molnar
2007-03-08 19:47         ` Michael S. Tsirkin
2007-03-08 20:10           ` Ingo Molnar
2007-03-08 19:25       ` Ingo Molnar
2007-03-08 23:07         ` Ingo Molnar
2007-03-08 23:12           ` Ingo Molnar
2007-03-08 23:28             ` Ingo Molnar
2007-03-08 23:49           ` Linus Torvalds
2007-03-09 10:56             ` Ingo Molnar
2007-03-09 18:00               ` Linus Torvalds
2007-03-09 11:19             ` Pavel Machek
2007-03-18 16:07               ` Ingo Molnar
2007-03-18 16:40                 ` [linux-pm] " Jim Gettys
2007-03-19 19:08                   ` BSOD (was: [2/6] 2.6.21-rc2: known regressions) Pete Zaitcev
2007-03-19 19:38                     ` BSOD David Miller
2007-03-19 19:54                       ` Jesse Barnes [this message]
2007-03-19 20:05                         ` BSOD David Miller
2007-03-19 20:20                           ` BSOD Jesse Barnes
2007-03-19 20:20                           ` BSOD Jim Gettys
2007-03-20  9:19                           ` BSOD Paul Mackerras
2007-03-20 20:33                             ` BSOD Jim Gettys
2007-03-19 20:33                   ` [linux-pm] [2/6] 2.6.21-rc2: known regressions Bill Davidsen
2007-03-19 22:08                     ` Jim Gettys
2007-03-20 14:44                       ` Bill Davidsen
2007-03-09 17:48             ` Johannes Stezenbach
2007-03-09 23:35               ` Pavel Machek
2007-03-10  9:01                 ` Ingo Molnar
2007-03-10 11:43                   ` Stefan Seyfried
2007-03-10 13:53                     ` Johannes Stezenbach
2007-03-10 15:18                     ` Ingo Molnar
2007-03-10 22:08                       ` Pavel Machek
2007-03-11  8:20                         ` Ingo Molnar
2007-03-12  6:34                           ` Stefan Seyfried
2007-03-10 22:04                   ` s2ram (was Re: [2/6] 2.6.21-rc2: known regressions) Pavel Machek
2007-03-08 19:46       ` [2/6] 2.6.21-rc2: known regressions Michael S. Tsirkin
2007-03-08 19:57       ` Michael S. Tsirkin
     [not found]         ` <20070311120802.GA8823@elte.hu>
2007-03-12 20:20           ` Michael S. Tsirkin
2007-03-17 21:41             ` Michael S. Tsirkin
2007-03-17 22:33               ` Thomas Gleixner
2007-03-21 17:28                 ` Michael S. Tsirkin
2007-03-05  1:50 ` [3/6] " Adrian Bunk
2007-03-05  3:58   ` Michal Jaegermann
2007-03-06 17:08   ` Alan Cox
2007-03-07 11:12   ` Jeff Garzik
2007-03-10  1:09     ` Mathieu Bérard
2007-03-10  4:11       ` and try remove another quirk on this computers " Sergio Monteiro Basto
2007-03-10  5:41         ` Linus Torvalds
2007-03-11  4:32           ` Sergio Monteiro Basto
2007-03-12 11:37       ` Tejun Heo
2007-03-13 12:31         ` Mathieu Bérard
2007-03-13 12:41           ` Tejun Heo
2007-03-13 20:56             ` Mathieu Bérard
2007-03-14  6:07               ` Tejun Heo
2007-03-14 10:49                 ` Mathieu Bérard
2007-03-05  1:50 ` [4/6] " Adrian Bunk
2007-03-05 10:35   ` Antonino A. Daplas
2007-03-05 15:06     ` Andrew
2007-03-08 23:28     ` Len Brown
2007-03-09 19:25       ` Andrew
2007-03-05 12:21   ` Richard Purdie
2007-03-05  1:50 ` [5/6] " Adrian Bunk
2007-03-05  7:57   ` Ingo Molnar
2007-03-05  8:13     ` Andrew Morton
2007-03-05 15:25       ` Daniel Walker
2007-03-05 15:27         ` Ingo Molnar
2007-03-05 16:42           ` Daniel Walker
2007-03-05 19:30             ` Ingo Molnar
2007-03-05 16:14     ` Bill Davidsen
2007-03-05 16:21       ` Ingo Molnar
2007-03-05 23:12     ` Adrian Bunk
2007-03-05 23:43   ` Thomas Gleixner
2007-03-05 23:45     ` Linus Torvalds
2007-03-06  0:25       ` Thomas Gleixner
2007-03-06  6:49         ` Soeren Sonnenburg
2007-03-06  7:49           ` Soeren Sonnenburg
2007-03-06  0:38       ` Linus Torvalds
2007-03-06  1:02         ` Thomas Gleixner
2007-03-06  1:31           ` Linus Torvalds
2007-03-06  2:18             ` Linus Torvalds
2007-03-06  7:25               ` Ingo Molnar
2007-03-06  8:09                 ` Thomas Gleixner
2007-03-06 10:33               ` Michael S. Tsirkin
2007-03-06 10:37                 ` Ingo Molnar
2007-03-06 10:46                   ` Michael S. Tsirkin
2007-03-06 11:32                     ` Ingo Molnar
2007-03-06 12:20                       ` Michael S. Tsirkin
2007-03-06 16:44                       ` Linus Torvalds
2007-03-06 17:05                         ` Ingo Molnar
2007-03-06 17:29                         ` [PATCH] highres: do not run the TIMER_SOFTIRQ after switching to highres mode Thomas Gleixner
2007-03-06 17:41                           ` Linus Torvalds
2007-03-16 15:18                         ` [5/6] 2.6.21-rc2: known regressions Randy Dunlap
2007-03-06 11:36                     ` Soeren Sonnenburg
2007-03-06 12:07                       ` Ingo Molnar
2007-03-06 12:15                         ` Michael S. Tsirkin
2007-03-06 12:51                         ` Ingo Molnar
2007-03-06 12:55                           ` Michael S. Tsirkin
2007-03-06 13:03                             ` Ingo Molnar
2007-03-06 13:09                           ` Thomas Gleixner
2007-03-06 12:09                       ` Jeff Chua
2007-03-11 17:32                     ` Pavel Machek
2007-03-06 10:33               ` Michael S. Tsirkin
2007-03-05  1:50 ` [6/6] " Adrian Bunk
2007-03-05  2:07   ` David Miller
2007-03-05  2:26     ` Adrian Bunk
2007-03-05  2:29       ` David Miller
2007-03-05  4:42       ` David Miller
2007-03-05  3:32   ` Greg KH

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=200703191254.36373.jesse.barnes@intel.com \
    --to=jesse.barnes@intel.com \
    --cc=davem@davemloft.net \
    --cc=jg@laptop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=zaitcev@redhat.com \
    /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;
as well as URLs for NNTP newsgroup(s).