You're missing the point.  In a VirtualGL environment, there are two X
servers:

-- The "3D X server" is a shared resource.  It is used by multiple users
simultaneously in order to access the GPU, so it needs to remain
running.  It is only necessary to run one instance of the 3D X server,
although multiple GPUs can be assigned to different screens on that X
server.  This allows VirtualGL to address the GPUs separately, which can
be useful for load balancing (assigning different users to different
GPUs) in large multi-user environments.

-- The "2D X server" (X proxy) is per-user and can be started/stopped as
needed.  TurboVNC is our recommended 2D X server/X proxy solution, but
VirtualGL can also be used with other X proxy solutions, including
TigerVNC, Xpra, FreeNX, etc.  The 2D X server receives and displays the
rendered 3D images from VirtualGL, as well as rendering the output of
other (non-3D) X applications.  It is this X server that you would want
to start/stop using your job controller.

The basic purpose of VirtualGL is two-fold:

(1) To allow multiple users to share a single GPU (via the 3D X server
instance)
(2) To split 3D and 2D rendering to different X servers, so as to enable
hardware-accelerated OpenGL in an X proxy environment

The relationship between the 3D X server and the 2D X server is thus
one-to-many.  Your test results made me remember a discussion about this
on the old virtualgl-users mailing list, and IIRC someone told me that
you have to disable the keyboard and mouse drivers in xorg.conf in order
for the 3D X server instance to be truly headless, i.e. for you to be
able to disconnect it from the console without encountering errors.  Try
commenting out

    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"

and see if that changes the situation.  If so, I'll add that to the
how-to on VirtualGL.org.

On 10/9/17 7:03 PM, Jafaruddin Lie wrote:
> Thanks, our xorg.conf is already set to headless according to that page.
> Here's part of the section:
> 
> Section "Screen"
>  Identifier "Screen0"
>  Device "Device0"
>  Monitor "Monitor0"
>  DefaultDepth 24
>  Option "UseDisplayDevice" "none"
>    SubSection "Display"
>    Depth 24
>  EndSubSection
> EndSection
> 
> Section "Device"
>     Identifier     "Device0"
>     Driver         "nvidia"
>     VendorName     "NVIDIA Corporation"
>     BoardName      "Tesla K80"
>     BusID          "PCI:0:6:0"
> EndSection
> 
> Section "Monitor"
>     Identifier     "Monitor0"
>     VendorName     "Unknown"
>     ModelName      "Unknown"
>     HorizSync       28.0 - 33.0
>     VertRefresh     43.0 - 72.0
>     Option         "DPMS"
> EndSection
> 
> I'll test it with a single X instance and see how we go.
> The reason we want to have multiple X is that these desktop sessions are
> started by a job controller (user will submit their request for a
> desktop, which includes starting X).
> We would like the X server to be killed whenever a user finishes their
> job, but one step at a time I suppose :)
> 
> 
> On Tue, Oct 10, 2017 at 5:12 AM DRC <[email protected]
> <mailto:[email protected]>> wrote:
> 
>     Yes, it is possible.  You don't actually even need multiple X servers
>     for multiple users to use VirtualGL at the same time.  Multiple users
>     can share the same GPU using VirtualGL.  That is one of its purposes.
>     In order to use VirtualGL with multiple GPUs, generally the easiest way
>     to do it is to configure a single X server with multiple screens, so GPU
>     0 would be accessible by setting VGL_DISPLAY=:0.0 and GPU 1 would be
>     accessible by setting VGL_DISPLAY=:0.1, etc.  The reason why you are
>     getting the pixel readback error is because, unless the X server is
>     headless, it has to be attached to the physical display in order for
>     pixel readback to work.  The only way to use VirtualGL with multiple X
>     servers (:0.0, :1.0, etc.) is if one or more of them is configured to be
>     headless.  (https://virtualgl.org/Documentation/HeadlessNV explains how
>     to configure a headless X server with an nVidia GPU.)
> 
>     On 10/9/17 5:35 AM, Jafaruddin Lie wrote:
>     > Hi all
>     > Simple question is if it is possible, on a single machine with multiple
>     > GPUs, running different X servers on those GPUs, for multiple users to
>     > use vglrun at the same time?
>     > This is our current setup:
>     >
>     > 1 machine with 4 Nvidia K80 cards (latest drivers), running CentOS 7,
>     > VirtualGL 2.5.2, TightVNC, and Mate Desktop.
>     >
>     > We have 2 xorg.conf (2 cards configured on each xorg.conf), and
>     > currently we are testing whether we can bring up 2 desktop sessions via 
> VNC.
>     > The desktop loads, and we can see two different X servers running on
>     > those 4 cards and the VNC servers running on different displays.
>     >
>     > The issue is with VirtualGL. The first user can do startx and run vglrun
>     > glxgears, this will work fine.
>     > When the second user startx, the first user's vglrun session will be
>     > terminated with this error:
>     >
>     > [VGL] ERROR: OpenGL error 0x0502
>     > [VGL] ERROR: in readpixels---
>     > [VGL] 439: Could not read pixels
>     >
>     > The first user can run vglrun again once the second user stops their X
>     > session.
>     > My understanding is that with our setup, this should be do-able, right?
>     >
>     > Thanks.
> 
>     --
>     You received this message because you are subscribed to a topic in
>     the Google Groups "VirtualGL User Discussion/Support" group.
>     To unsubscribe from this topic, visit
>     https://groups.google.com/d/topic/virtualgl-users/5B331QalCaI/unsubscribe.
>     To unsubscribe from this group and all its topics, send an email to
>     [email protected]
>     <mailto:virtualgl-users%[email protected]>.
>     To view this discussion on the web visit
>     
> https://groups.google.com/d/msgid/virtualgl-users/e38fd010-f8e2-7faf-7e0b-2e3f68317985%40virtualgl.org.
>     For more options, visit https://groups.google.com/d/optout.
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "VirtualGL User Discussion/Support" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/virtualgl-users/CAOunvuMFtgSfjQf-TnmMMs1n5xOfUk520%2B2S0WgV6ipi-BEk-w%40mail.gmail.com
> <https://groups.google.com/d/msgid/virtualgl-users/CAOunvuMFtgSfjQf-TnmMMs1n5xOfUk520%2B2S0WgV6ipi-BEk-w%40mail.gmail.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"VirtualGL User Discussion/Support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/virtualgl-users/f34cbec1-b777-1970-86a2-f140907904eb%40virtualgl.org.
For more options, visit https://groups.google.com/d/optout.

Reply via email to