Re: [PATCH 1/2] PM: make VT switching to the suspend console optional

2012-11-02 Thread Jesse Barnes

On 11/2/2012 5:42 PM, Alan Cox wrote:

that, but how would I even configure a VT split across two adapters
today?  For vgacon we just route VGA to a single adapter, but I'm not


con2fb /dev/fb1 /dev/tty1


Dunno about suspend vs unload, how do we deal that in other drivers like
the disk driver for suspend for example?  Overall that case seems pretty
esoteric...

What do you mean about hand over to multiple frame buffers?


You have a global but I can insmod i915 move the consoles off it and
unload it (at least in theory - last time I tried it crashed at
least on gma500 which I need to fix 8))


i915 doesn't crash in that case, but you definitely don't get the 
console back as we don't restore all the VGA state.  Easy enough to 
restore the global at least though.




So you've got a global you can't just set back but need to adjust on
unload.

And you've got races like suspend as we are changing framebuffer which
your code doesn't consider as you have no locking.

If we push the logic into the vt layer we can pretty easily dump it under
the vt locks. It's not the whole story as there are all sorts of things
it doesn't handle but it does mean we can handle the case of

"if we are switching from a vt which is on a device that doesn't need it
for suspend then do nothing"

properly, and we can make any future features work right


I think all we need is consw to have a con_sw_suspend/con_sw_resume
method and the framebuffer layer to let kms get at it.


yay console layer... ok I'll check it out.

Overall it's probably worth some grotting around in the console layer. 
Avoiding a VT switch makes suspend/resume a lot nicer looking.  No more 
blinking cursor in the corner and ugly flickering.


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


Re: [PATCH 1/2] PM: make VT switching to the suspend console optional

2012-11-02 Thread Alan Cox
> that, but how would I even configure a VT split across two adapters 
> today?  For vgacon we just route VGA to a single adapter, but I'm not 

con2fb /dev/fb1 /dev/tty1

> Dunno about suspend vs unload, how do we deal that in other drivers like 
> the disk driver for suspend for example?  Overall that case seems pretty 
> esoteric...
> 
> What do you mean about hand over to multiple frame buffers?

You have a global but I can insmod i915 move the consoles off it and
unload it (at least in theory - last time I tried it crashed at
least on gma500 which I need to fix 8))

So you've got a global you can't just set back but need to adjust on
unload.

And you've got races like suspend as we are changing framebuffer which
your code doesn't consider as you have no locking.

If we push the logic into the vt layer we can pretty easily dump it under
the vt locks. It's not the whole story as there are all sorts of things
it doesn't handle but it does mean we can handle the case of

"if we are switching from a vt which is on a device that doesn't need it
for suspend then do nothing"

properly, and we can make any future features work right


I think all we need is consw to have a con_sw_suspend/con_sw_resume
method and the framebuffer layer to let kms get at it.

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


Re: [PATCH 1/2] PM: make VT switching to the suspend console optional

2012-11-02 Thread Jesse Barnes

On 11/2/2012 4:43 PM, Alan Cox wrote:

On Fri,  2 Nov 2012 14:43:40 -0700
Jesse Barnes  wrote:


KMS drivers can potentially restore the display configuration without
userspace help.  Such drivers can set a new global, pm_vt_switch, to
false if they support this feature.  In that case, the PM layer won't VT
switch to the suspend console at suspend time and then back to the
original VT on resume, but rather leave things alone for a nicer looking
suspend and resume sequence.


What if you are multi-head ? What are the locking rules for a suspend/kms
module unload race, what happens when you load/unload and hand over
multiple frame buffers ? What if you have vts split across two adapters ?

Put me down as 100% in favour of the feature but we need to be a bit more
careful about the implementation. The logic probably needs to be in the
vt layer.

I suspect we actually need a per vt flag for this, or a flag on the
underlying object below the vt somewhere.

So NAK for the implementation ACK for the idea.


Yeah good points, I didn't consider multi-head/VT split configurations 
at all obviously.  We can probably stuff something into the VT layer for 
that, but how would I even configure a VT split across two adapters 
today?  For vgacon we just route VGA to a single adapter, but I'm not 
sure how that works for fbcon.  Does it properly support multihead?  I 
thought not...


Dunno about suspend vs unload, how do we deal that in other drivers like 
the disk driver for suspend for example?  Overall that case seems pretty 
esoteric...


What do you mean about hand over to multiple frame buffers?

Jesse

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


Re: [PATCH 1/2] PM: make VT switching to the suspend console optional

2012-11-02 Thread Alan Cox
On Fri,  2 Nov 2012 14:43:40 -0700
Jesse Barnes  wrote:

> KMS drivers can potentially restore the display configuration without
> userspace help.  Such drivers can set a new global, pm_vt_switch, to
> false if they support this feature.  In that case, the PM layer won't VT
> switch to the suspend console at suspend time and then back to the
> original VT on resume, but rather leave things alone for a nicer looking
> suspend and resume sequence.

What if you are multi-head ? What are the locking rules for a suspend/kms
module unload race, what happens when you load/unload and hand over
multiple frame buffers ? What if you have vts split across two adapters ?

Put me down as 100% in favour of the feature but we need to be a bit more
careful about the implementation. The logic probably needs to be in the
vt layer.

I suspect we actually need a per vt flag for this, or a flag on the
underlying object below the vt somewhere.

So NAK for the implementation ACK for the idea.

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