1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-07 01:27:11 +03:00
Commit Graph

33 Commits

Author SHA1 Message Date
Michal Schmidt
1124fe6f01 unit: use the UNIT() macro consistently
The UNIT() macro upcasts from specific unit types to the base Unit.
Use it everywhere, rather than accessing the 'meta' member directly.
2012-01-16 13:34:42 +01:00
Michal Schmidt
ac155bb885 unit: remove union Unit
Now that objects of all unit types are allocated the exact amount of
memory they need, the Unit union has lost its purpose. Remove it.

"Unit" is a more natural name for the base unit class than "Meta", so
rename Meta to Unit.

Access to members of the base class gets simplified.
2012-01-16 13:34:42 +01:00
Michal Schmidt
7d17cfbc46 unit: reduce heap usage for unit objects
The storage of the unit objects on the heap is currently not very
efficient. For every unit object we allocate a chunk of memory as large
as the biggest unit type, although there are significant differences in
the units' real requirements.
pahole shows the following sizes of structs:
488  Target
496  Snapshot
512  Device
528  Path
560  Timer
576  Automount
1080 Socket
1160 Swap
1168 Service
1280 Mount

Usually there aren't many targets or snapshots in the system, but Device
is one of the most common unit types and for every one we waste
1280 - 512 = 768 bytes.

Fix it by allocating only the right amount for the given unit type.
On my machine (x86_64, with 39 LVM volumes) this decreases systemd's
USS (unique set size) by more than 300 KB.
2012-01-16 13:34:42 +01:00
Lennart Poettering
f975e971ac load-fragment: speed up parsing by using a perfect hash table with configuration settings built by gperf 2011-08-01 00:43:05 +02:00
Lennart Poettering
7a6000a682 unit: make ignoring in snapshots a per unit property, instead of a per unit type property 2011-05-05 10:58:55 +02:00
Lennart Poettering
c8f4d7642b manager: introduce IgnoreOnIsolate flag so that we can keep systemd-logger around when isolating 2011-04-16 02:03:34 +02:00
Lennart Poettering
f6a6225e41 def: centralize definition of default timeout in one place 2011-03-17 04:02:35 +01:00
Harald Hoyer
35b8ca3aaf Spelling Corrections
Just some lame spelling corrections with no functionality.
2011-02-28 22:47:38 +01:00
Lennart Poettering
2958c88614 device: consider udev devices with SYSTEMD_READY=0 as unplugged 2011-02-09 14:48:52 +01:00
Lennart Poettering
e2f3b44cfc service: when reloading a service fails don't fail the entire service but just the reload job 2011-01-20 13:17:22 +01:00
Lennart Poettering
47ae6e6760 device: don't warn if we cannot bump the socket buffer 2011-01-08 02:30:07 +01:00
Kay Sievers
2e6081f2ff udev: make sure we aleways read from netlink, if there is data 2010-11-26 16:06:30 +01:00
Kay Sievers
99448c1f01 udev: increase event buffer size, handle -ENOBUFS, handle filtered-out devices 2010-11-26 04:51:30 +01:00
Lennart Poettering
8c4dd542af units: get rid of no_requires unit flag, and make crypto disks require cryptsetup service 2010-11-15 18:26:37 +01:00
Lennart Poettering
6210e7fc31 manager: always pull 'following' units into transaction 2010-11-14 23:48:21 +01:00
Lennart Poettering
f14e15f8af unit: replace recursive_stop by stop_retroactively to simplify things a little 2010-10-28 03:38:52 +02:00
Lennart Poettering
18f593360b device: set recursive_stop=true by default 2010-10-28 03:15:44 +02:00
Lennart Poettering
e04aad61bb swap: major rework, use /sbin/swapon for setting up swaps, fix merging of aliased swap disks 2010-10-12 04:08:04 +02:00
Lennart Poettering
eb9e50de3e device: allow aliases on devices 2010-08-26 04:08:01 +02:00
Lennart Poettering
5845b46ba3 device: handle properly if two devices want to have the same name
https://bugzilla.redhat.com/show_bug.cgi?id=624539
2010-08-20 04:04:08 +02:00
Lennart Poettering
c4e2ceae94 dbus: follow standardized fdo PropertiesChanged signal spec 2010-08-20 02:31:54 +02:00
Lennart Poettering
8630d37023 device: be more verbose of udev confuses us 2010-08-17 03:31:31 +02:00
Lennart Poettering
d6c9574fb5 emacs: make sure nobody accidently adds tabs to our sources 2010-08-14 19:59:25 +02:00
Lennart Poettering
ee6cb28869 device: properly handle devices that are referenced before they show up 2010-08-06 04:17:51 +02:00
Lennart Poettering
a7f241db3f unit: deduce following unit value dynamically instead of statically, to avoid dangling pointers 2010-07-21 05:00:29 +02:00
Lennart Poettering
8fe914ec81 device: do not merge devices
Don't try to merge devices that have been created via dependencies when
they appear in the system and can be recognized as the same.  Instead,
simply continue to maintain them independently of each other, however
with the same state cycle. Why? Because otherwise we'd have a hard time
to seperate the dependencies after the devices are unplugged again and
we hence cannot be sure anymore that next time the device is plugged in
it will carry the same names.

Example: if one depndency refers to dev-sda.device and another one to
dev-by-id-xxxyyy.device we only learn at time of plug in of the device
that it is actually the same device that was ment. In the moment the
device is unplugged again we won't know anymore their relation to each
other and the next time the harddisk is plugged it might even appear as
dev-by-id-xxxyyy.device and dev-sdb.service. To ensure the dependencies
continue to have the meaning they were intended to have let's hence keep
the .device objects seperate all the time, even when they are plugged
in.

This patch also introduces a new Following= property which points from
the various .device units of a specific device to the main .device unit
for it. This can be used by the client side to figure out the relation
of the .device units to each other and even filter units from display.
2010-07-20 20:33:24 +02:00
Lennart Poettering
faf919f1eb job: timeout every job independently of the unit 2010-07-17 04:09:28 +02:00
Lennart Poettering
73608ed994 device: rename 'available' state to 'plugged' 2010-07-16 21:32:34 +02:00
Lennart Poettering
ee5f3479e2 device: properly create dependencies 2010-07-13 02:17:26 +02:00
Lennart Poettering
f60f22dfbb util: use quoted word parsing where applicable 2010-07-07 20:58:41 +02:00
Lennart Poettering
4cd1fbcc06 unit: get rid of various unnecessary casts 2010-06-19 16:55:49 +02:00
Lennart Poettering
e1ce2c2782 device: make use of new libudev tags logic 2010-05-22 01:00:28 +02:00
Lennart Poettering
e99e38bbdc build-sys: move source files to subdirectory 2010-05-16 18:45:24 +02:00