The multiple "X Servers" is really just a thread within the driver. A key indicator of this is memory information being exactly the same.
See the man page for "pthreads" for a confirmation.
SCRATCH THAT, I'M COMPLETELY WRONG!
Disregard the above post, I do have two instances of X running. I had completely forgotten I had switched to the open source driver to do some testing. ID-10-T error!
Confirmed duplicate X servers running, on Ubuntu 8.04 and Catalyst 8.6. I installed the ATI driver using the traditional buildpkg method.
The multiple "X Servers" is really just a thread within the driver. A key indicator of this is memory information being exactly the same.
See the man page for "pthreads" for a confirmation.
first, i not a specialist in X and fglrx, but i think i know what is this...
if you run a ps xuaf, you will see that the 2º X is started by the first one, the same way as a multi-thread java app starts several javas, but in reality its only one...
i see this 2 X servers as a thread or a shared X. they share the RAM and video ram (by the way, top is very bad to check the X memory usage, it accounts cache, video ram memory, shared libs and other this as X memory, but the reality is not that number, its alot lower)
why do it start 2 X and radeon and vesa only 1 X? easy, vesa and radeon manage the card as one, but fglrx manage the card (at least with video dual output or a laptop) like 2 shared cards. fglrx can setup "both cards" in xorg.conf (:0.0 and :0.1), while radeon only via special modes can control both monitors (but just one :0.0) and vesa cant do it independently. but in the end, doesnt matter much, almost all X memory is the card video ram and having both screens controled independently or integrated always use about the same memory, but the dual/shared X is more flexible
for those thinking that they only have one cards, check your lspci and count how much cards yiy really have... out many output connects? (dont forget the external connector in latopt's)
even if you dont have 2 monitors/LCD connected, you still need the 2 X, the 2º is waiting for you to plug something, but is must be ready to detect that, so it must be running (again, it shares almost all code with the first X server)
so dont worry, the X isnt eating that much ram, isnt wasting things, its just shareing resources and using your card
higuita
I believe that to be the case for both LinuxThreads and NPTL. The key indicator that we are looking at threads is the parent/child relationship as well as 100% matching resource usage.
If the resource usage differs, it is most likely a fork (and consequently a different process).
Regards,
Matthew
Well I agree with you that if they have the same amount of memory/resources it's a good sign it's the same process, just splat into two threads.
But if they have 2 different PID it confuses me! since in "top" you can show threads and hide threads... and I see the two X even when I tell him to hide threads (and it does hide them)!
so I can't understand if it's just a different thread implementation or the second X it's not a thread!
as I read there's no clearance in documentation if pthreads use same PID or not!
obviously being threads or not changes the situation dramatically
have you got more info on pthreads behaviour?
Bye![]()
It has to be a fork. Pthreads share the same PID (because pthreads are just threads of one process). I think that these processes use /dev/shm shared memory. If I run 'ipcs -m -p' command in terminal, it prints out a lot of shared memory segments, and if I filter the output by xorg's PID, in my case, 60% of the segments were allocated by the xorg process.