desktop-packages team mailing list archive
-
desktop-packages team
-
Mailing list archive
-
Message #146073
Re: [Bug 1307069] Re: gpu-manager causing long startup delays
On 29-10-15 07:52:37, Martin Pitt wrote:
> The PCI device will exist whether or not the module was loaded; so you
> can just iterate over /sys/bus/pci/devices/* (* expands to the PCI bus
> IDs) and check the attributes in each directory; e. g. you probably want
> to pick out the ones with class == 0x030000 (graphics card), and perhaps
> vendor == 10DE (nvidia).
>
Yes, I use libpciaccess for that. Of course it doesn't work when the GPU
is disabled through an ACPI call (i.e. power saving mode in hybrid
graphics).
It usually works like this on boot:
The GPU is already enabled, the module is loaded, then the ACPI call
disables the GPU (i.e. the PCI device disappears), and the module is
unloaded.
> If you want to do that via an udev rule: I'm not entirely sure which
> kinds of events you get when the nvidia driver gets loaded. You can
> unload it, run
>
> udevadm monitor -e --udev
>
> then load it, and see what kind of events you get. For sure you'll see
> an "add" event for SUBSYSTEM=="module", DEVPATH=="*/nvidia", but either
> on boot or when loading the module you should also see an "add" or
> "change" event for the graphics card itself.
>
> This is an initial sketch of a rule which selects a PCI card whose
> driver is nvidia:
>
> ACTION=="add|change", SUBSYSTEM=="pci", DRIVER=="nvidia*", RUN+=
> "touch /run/nvidia-loaded-for-pci-id-$env{PCI_ID}"
>
> (using "nvidia*" here in case the modules might be called something like
> nvidia_123). You can use udev properties like $env{PCI_ID} and also
> attributes from sysfs like the above, with e. g. $attr{vendor}. See man
> udev(7) for other macros you can use in RUN clauses.
>
> Then you don't need the "remove" rule any more -- if /sys/modules/nvidia
> does not exist but your stamp in /run does exist, you know that it was
> once loaded but then removed.
Yes, that would work. I already have udev rules in place to start other
applications when an NVIDIA GPU is made available, so I can simply
create that file in /run and get rid of the whole parsing code.
This should be a huge help. Thanks a lot!
--
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to ubuntu-drivers-common in Ubuntu.
https://bugs.launchpad.net/bugs/1307069
Title:
gpu-manager causing long startup delays
Status in ubuntu-drivers-common package in Ubuntu:
Triaged
Bug description:
I have installing ubuntu 14.04 beta2 and i have update it to latest.
My computer take 40 seconds for start up from displaying grub until
displaying LightDM on my SSD. My ubuntu 12.04 only takes up 13 seconds
for start up on the same SSD.
reported as bug from question:
#246899
https://answers.launchpad.net/ubuntu/+question/246899
Computer specification:
Ati Mobility Radeon HD 5650 and using Mesa 10.2 from Oibaf's PPA (the start up time is same as default Gallium Mesa 10.1)
Processors: Intel Core i5-460M (Arrandale)
8 GB DDR3 RAM 1333 MHz
Vendor : Acer Aspire 4745G
running dmesg | less
showing:
intel ips 0000:00:1f.6: ME failed to update for more than 1s, likely hung (many rows)
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: grub2 2.02~beta2-9
ProcVersionSignature: Ubuntu 3.13.0-24.46-generic 3.13.9
Uname: Linux 3.13.0-24-generic i686
NonfreeKernelModules: wl
ApportVersion: 2.14.1-0ubuntu2
Architecture: i386
CurrentDesktop: Unity
Date: Sun Apr 13 11:25:46 2014
InstallationDate: Installed on 2014-04-07 (5 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Beta i386 (20140326)
SourcePackage: grub2
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-drivers-common/+bug/1307069/+subscriptions
References