[Mesa-dev] [RFC 00/10] Let us welcome EGLDevice

Mathias Fröhlich Mathias.Froehlich at gmx.net
Thu Aug 30 14:11:11 UTC 2018


Hi Emil,

> Correct. We had a number of bugs (one of which breaking MT apps) that
> makes me cautious.
Working with environment variables basically is often asking for problems. The 
thread race condition ones being the most prominent.
To overwrite something - especially for debugging - its ok to use the 
environment IMO. But there should always be a non environment variable API for 
normal use.

> Agreed - will need to take a closer look why things crash, while the
> piglit test works.
> Might even add a piglit subtest.

That would be great.

Once the development machine is restored form backup, I should have one more 
piglit test that I wrote once for that basic set of extensions. Mostly 
overlapping with what you committed lately, but may be still useful.

> >> > Then if I use the patch series on an account that has no DISPLAY set
> >> > and
> >> > no
> >> > 'display server' running, eglInitialize fails in device_probe_device
> >> > due
> >> > to at first opening the '.../card0' device and bailing out when this
> >> > does
> >> > not work. Means the current patch series goes via opening the primary
> >> > node which shall not be accessible by everyone and from that derives
> >> > the
> >> > rendernode device which is finally used for _EGLDisplay initialization.
> >> > Can we alternatively go directly to the rendernode in some way?
> >> 
> >> I think we could. Can you elaborate a bit more or provide an example
> >> on the topic though.
> >> I'm quite curious what's happening here - is there no card0 node,
> >> open() fails, other?
> > 
> > It's just the file permissions:
> > 
> > $ ls -l /dev/dri/{card*,render*}
> > crw-rw----+ 1 root video  226,   0 Aug 30 08:28 /dev/dri/card0
> > crw-rw-rw-  1 root render 226, 128 Aug 30 08:28 /dev/dri/renderD128
> > 
> > which is pretty much what I expect from the basic idea of render nodes.
> > As long as you are the one logged into the console you can access card0
> > via an dynamically added acl. But if you are not logged into the console,
> > which is at least one of the major driving use cases of the device
> > enumeration extension, the current implementation fails with opening
> > card0.
> 
> IIRC when someone gets logged in systemd/logind/others sets up the ACL
> -  both ownership and permissions.
> So an open(/dev/dri/card0) will be fine - be that from tty or the DE
> terminal emulator.
> 
> Can you share a brief how-to reproduce?

ssh different-machine.somewhere

Then you will see that you are not added to the card0 acl as you are not 
logged to any console.

Basically this set of extensions should give anyone who has access to the cpu 
to compute something from his data also access to the gpu to compute/render 
some pictures from his data.

The practical use case is really: You sit in Central Europe with your CAD 
model and you prepared that for some simulation. That simulation will later 
run on a compute cluster located anywhere but central europe. May be think of 
a country where cooling is easier and electricity is cheaper. You copy your 
prepared model to one cluster file system there and start to produce terabytes 
of data on that cluser filesystem. Either your postprocessing runs then later 
on on some machine with a GPU or your simulation program - mostly using MPI - 
transfers data for postprocessing to some GPU nodes inside the MPI program on 
the cluster and generates some images that you will take a look afterwards. 
Usually the images are some megabytes that you can copy back to central 
europe.
Also please don't nail that argument down to ssh. You can find very creative 
solutions in high performance computing on different machines. Some of them 
still use telnet or rsh to spawn their sub processes. Some queuing systems 
have custom daemons and protocols to start compute processes onto some compute 
node.

Long story short, you just cannot assume that you have access to card*.


> Ouch. Hope you have backups for your important bits.
Yes, I have. I will loose hand full of mails from until the previous evening, 
but appart from that, nothing else. Thanks for asking!

best

Mathias






More information about the mesa-dev mailing list