[Nouveau] Cannot start a secondary Xserver with resolution 6480x3840
Janek Kozicki
janek.listy.mailowe at gmail.com
Wed Jan 23 11:10:25 UTC 2019
Thanks a lot for helping with this stuff on irc! I would like to
report more stuff :)
1. xterm refresh is slow when scrolling. On nvidia drivers that was an instant refresh.
I made a video to make you believe: https://www.youtube.com/watch?v=W2_DnniDaGI
If it is so slow, then maybe profiling this can be a lot easier to spot
which function takes so much time.
I have recompiled xserver-xorg-video-nouveau-1.0.15 and linux-kernel
4.20.3, so it's not a problem for me to apply some debugging and
profiling patches so that we could find which function call is to blame.
2. that kernel oops happened twice
WARNING: CPU: 22 PID: 18282 at drivers/gpu/drm/nouveau/nvif/vmm.c:71 nvif_vmm_put+0x65/0x70 [nouveau]
maybe I will nail it down. It first triggered when I logged out from
the fourth xserver, or to be more precise here's what I did:
1. reboot PC
2. start 1st xserver on vt11
2. start 2nd xserver on vt2
3. start 3rd xserver on vt4
4. start 4th xserver on vt5
5. chat on irc on vt11
6. switch to vt5 then click to log out of the xserver. Then this bug appeared.
7. afterwards whenever I exited xserver the screens would all turn
off, Ctrl-Alt-Fn did not work, and the only way to recover virtual
terminals is to ssh remotely then type as root command like `chvt 11`
I am willing to try some profling patches to fix xterm scrolling
issue. Buy while applying debug patches we might as well investigate
this kernel oops.
3. Last but not least chromium is very slow. Upon startup it prints:
[752:752:0123/115707.192705:ERROR:browser_dm_token_storage_linux.cc(93)] Error: /etc/machine-id contains 0 characters (32 were expected).
nvc0_screen_create:937 - Error allocating PGRAPH context for 3D: -22
libGL error: failed to create dri screen
libGL error: failed to load driver: nouveau
ATTENTION: default value of option force_s3tc_enable overridden by environment.
[798:798:0123/115707.556802:ERROR:sandbox_linux.cc(364)] InitializeSandbox() called with multiple threads in process gpu-process.
[752:870:0123/115707.684864:ERROR:bus.cc(396)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[752:752:0123/115708.836775:ERROR:x11_input_method_context_impl_gtk.cc(149)] Not implemented reached in virtual void libgtkui::X11InputMethodContextImplGtk::SetSurroundingText(const string16&, const gfx::Range&)
libpng warning: iCCP: known incorrect sRGB profile
Writing text in chromium is very slow. The letters appear after
I wrote almost entire sentence.
I did not backport mesa packages yet, so I am without acceleration.
Would mesa help here? Or can we do someting to do some profiling here
too?
best regards
Janek
PS: a note for other people which might be interested:
Finally my xorg.conf is following:
Section "Monitor"
Identifier "MonLeft"
Option "Rotate" "left"
EndSection
Section "Monitor"
Identifier "MonCenter"
Option "Rotate" "left"
Option "RightOf" "DP-2"
EndSection
Section "Monitor"
Identifier "MonRight"
Option "Rotate" "left"
Option "RightOf" "DP-1"
EndSection
Section "Device"
Identifier "Card0"
Driver "nouveau"
BusID "PCI:4:0:0"
Option "Monitor-DP-2" "MonLeft"
Option "Monitor-DP-1" "MonCenter"
Option "Monitor-DP-3" "MonRight"
EndSection
Ilia Mirkin said: (by the date of Mon, 21 Jan 2019 21:37:54 -0500)
> The scenario you describe should most definitely work -- switching
> between different instances of X running on different vt's.
>
> Your GPU has 4 CRTC's (Kepler, then Maxwell, then Pascal -- that's
> your generation), which means you can have up to 4 heads at the same
> time.
>
> Here's a config that I use to get both of my monitors to come up the
> way I want them to, using the nouveau ddx, without messing with randr
> on startup:
>
> Section "Monitor"
> Identifier "Mon0"
> Option "Rotate" "left"
> EndSection
>
> Section "Monitor"
> Identifier "Mon1"
> Option "Rotate" "right"
> Option "RightOf" "DVI-D-1"
> EndSection
>
> Section "Device"
> Identifier "Card0"
> Driver "nouveau"
> BusID "PCI:2:0:0"
>
> Option "Monitor-DVI-D-1" "Mon0"
> Option "Monitor-HDMI-1" "Mon1"
> EndSection
>
> Presumably you want the same setup for all your instances of X, but in
> case that's not the case, you can have multiple different configs, and
> invoke them with Xorg -config <name of config>.
>
> If you still have problems, I'd encourage you to join #nouveau on
> irc.freenode.net -- much easier to resolve such issues in realtime.
>
> Cheers,
>
> -ilia
>
> On Mon, Jan 21, 2019 at 2:32 PM Janek Kozicki
> <janek.listy.mailowe at gmail.com> wrote:
> >
> > Uh, I wanted to attach the Xorg.0.log, but I got a reply that it is
> > too big. How can I send to mailing list with attachments? Or is it
> > fine to wait for moderator approval?
> >
> >
> >
> > Hi,
> >
> > thank you very much for your reply.
> >
> > I will explain my use case in more detail. First thing is to note that
> > it worked with nvidia (apart from this annoying system freeze which
> > happened roughly every three months).
> >
> >
> > > First off, you're not using the nouveau ddx, you're using the
> > > modesetting ddx. This isn't a problem in itself, but if you're going
> > > to report bugs, you should file them against the proper component.
> >
> > oh, wow. I don't know what is ddx or modesetting ddx. Google tells me
> > that it is related to intel drivers? But I have nvidia card. And
> > Xorg.0.log refers to nouveau and nv.
> >
> > Please provide me some links where I can learn about the difference
> > between nouveau and ddx.
> >
> >
> > > Secondly, I'm a bit unclear as to what your setup is. A single X
> > > server takes over a whole GPU. Recently "leasing" has been introduced
> > > which enables a drm master to "lease" certain outputs to another
> > > process, but I haven't played much with it.
> >
> > I press Ctrl-Alt-F2 to switch to text virtual terminal, there I log
> > in as user 'research' and type
> >
> > $ startx -- -nolisten tcp -dpi 100
> >
> > Thus I start an xserver (owned by user research) which uses three LCD
> > screens 6480x3840 in multihead configuration. All LCD screens are
> > part of the same desktop and part of the same xserver.
> >
> > Then I press Ctrl-Alt-F4 to switch to another text virtual terminal,
> > there I log in as user 'yade' and type
> >
> > $ startx -- -nolisten tcp -dpi 100
> >
> > On nvidia drivers it works and it starts yet another xserver (owned
> > by user yade) which uses three LCD screens 6480x3840 in multihead
> > configuration.
> >
> > The only way to work as former user 'research' is to press Ctrl-Alt-F2
> > to switch to its xserver.
> >
> > Then I press Ctrl-Alt-F11 to another text virtual console, there I
> > log in as another user and start third xserver with the same command:
> >
> > $ startx -- -nolisten tcp -dpi 100
> >
> > I am attaching Xorg.0.log from succesfull startup and a (second)
> > failed startup.
> >
> > I hope that I explained my use case in an understandable manner?
> >
> > > If you want different X
> > > servers for each (or groups of) outputs of a single GPU, then you need
> > > to get leasing going.
> >
> > It's not like this. At single time all GPU outputs go to single
> > xserver. I just switch between xservers by switching virtual
> > terminals (pressing Ctrl-Alt-F2, then Ctrl-Alt-F4).
> >
> >
> > > I'm not sure as to your precise use-case, but perhaps another option
> > > is to have a single X server with multiple X screens. This can be done
> > > by enabling ZaphodHeads. This was a common way to get a mega-screen
> > > across multiple GPUs prior to output slaving being introduced, there's
> > > a guide here https://nouveau.freedesktop.org/wiki/MultiMonitorDesktop/
> >
> > I am sure that single X server will not work here. Each xserver is
> > owned by different user. I organized it in this way so that command
> > "slay yade" will not interfere with my other working X sessions.
> >
> > I have only one graphics card in my computer, it has three
> > DisplayPort outputs, and they are connected to my three LCD screens.
> >
> >
> > > Lastly, note that no matter how many physical outputs there might be,
> > > Kepler+ only supports 4 CRTC's and earlier gens had 2. That puts a
> > > hw-imposed upper limit on the number of images that can be produced
> > > for these outputs.
> >
> >
> > My graphics card is GeForce GTX 1060 SC 6GB GDDR5 (192 Bit) DVI-D, 3xDP, HDMI
> >
> > Does it mean that with nouveau driver my use-case will work with only
> > 2 screens or with 4 screens?
> >
> > Please note that my use-case works perfectly (except the occasional
> > system freeze roughly every three months) when I use nvidia drivers.
> >
> >
> > 04:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1) (prog-if 00 [VGA controller])
> > Subsystem: eVga.com. Corp. GP106 [GeForce GTX 1060 6GB]
> > Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
> > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> > Latency: 0, Cache Line Size: 64 bytes
> > Interrupt: pin A routed to IRQ 11
> > NUMA node: 0
> > Region 0: Memory at de000000 (32-bit, non-prefetchable)
> > Region 1: Memory at c0000000 (64-bit, prefetchable)
> > Region 3: Memory at d0000000 (64-bit, prefetchable)
> > Region 5: I/O ports at 7000
> > Expansion ROM at df000000 [disabled]
> > Capabilities: <access denied>
> > Kernel driver in use: nouveau
> > Kernel modules: nouveau
> >
> >
> >
> > thanks a lot for your help!
> > Janek Kozicki
> > _______________________________________________
> > Nouveau mailing list
> > Nouveau at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/nouveau
--
# Janek Kozicki http://janek.kozicki.pl/
More information about the Nouveau
mailing list