On 02/05/2013 10:06 PM, Marko Vojinovic wrote:
On Tue, 05 Feb 2013 19:32:34 +0000
Gordan Bobic<gordan@xxxxxxxxxx> wrote:
I'm a not quite up to speed on systemd, so I'm hoping somebody here
might point me in the right direction WRT the Fedora systemd init
process flow.
I'm trying to work around bug 529153:
https://bugzilla.redhat.com/show_bug.cgi?id=529153
The closest to a workable solution I have come up with is:
echo -n 0000:00:1c.0:pcie04
/sys/bus/pci_express/drivers/pciehp/unbind
So I need this to run as early as possible during the init sequence,
as soon as /sys is mounted.
Before/after which services should this be done?
Systemd does not execute sequentially, but in parallel, so there is no
concept of before and after.
What you want is to write a custom systemd unit file which requires that
local-fs.target has already completed (that makes sure that the
filesystem is already mounted) and then executes your command. Then
systemd will make sure that your script gets executed at the first
possible opportunity after the filesystem mount.
So, you can either learn how to write a custom systemd unit file, or
someone experienced in this should step in to help you. My
understanding of systemd is still only descriptive at best.
Yes, I got that part mostly figured out:
My custom service is:
======
[Unit]
Description=pciehp disable
DefaultDependencies=no
After=local-fs.target
[Service]
Type=oneshot
ExecStart=echo -n 0000:00:1c.0:pcie04 >
/sys/bus/pci_express/drivers/pciehp/unbind
======
Unfortunately, this isn't too useful on it's own because the machine is
still stuck in the pciehp loop that makes it take hours to actually boot
up, iterating over and over with:
pciehp 0000:00.1c.0:pcie04 Card present on Slot(0)
pciehp 0000:00.1c.0:pcie04 Card not present on Slot(0)
I got the device ID:
# lspci -n | grep 1c.0
00:1c.0 0604: 8086:3a40
And tried adding to the kernel parameters:
pci_stub="8086:3a40"
but that made no difference.
If I can get the machine to boot, doing:
echo -n 0000:00:1c.0:pcie04 > /sys/bus/pci_express/drivers
fixes the problem, but the only way I've been able to make it boot is by
specifying "noapic noacpi nosmp quiet" as kernel boot parameters, and
that is a bit wasteful on a 12-core 24-thread machine.
Extensive googling hasn't revealed any obvious way to disable pciehp
when it is built into the kernel as it is in Fedora kernels or
explicitly tell it to unbind (or preferably not bind in the first place)
to a specific device.
If anyone has any ideas on this, I would very much like to hear about
them. As it stands every Fedora and RHEL release since F11 is completely
unusable on my machine, which seems like a pretty excessively
long-standing bug.
Gordan
--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org