Re: Systemd and Custom Early Init Script

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux