Op 13 jun 2011, om 15:57 heeft Bruce Ashfield het volgende geschreven:

> On Mon, Jun 13, 2011 at 9:27 AM, Koen Kooi <k...@dominion.thruhere.net> wrote:
>> 
>> Op 13 jun 2011, om 14:54 heeft Bruce Ashfield het volgende geschreven:
>> 
>>> On Mon, Jun 13, 2011 at 8:10 AM, Koen Kooi <k...@dominion.thruhere.net> 
>>> wrote:
>>>> Hi,
>>>> 
>>>> After finding the bug Scott was running into with systemd-image (no 
>>>> DEVTMPFS support) I have a closer look at the qemarm kernel config and it 
>>>> looks dated to me. If we want to have tools like udev, powertop, iotop, 
>>>> latencytop working we need to revisit the config. From a quick look I 
>>>> found the following items missing/incomplete:
>>>> 
>>>> * devtmpfs + devtmpfs automounting. Recent udev versions require it
>>>> * cgroups, systemd requires it
>>>> * process accounting, *top uses it
>>>> * fuse, gvfs requires it
>>>> * autofs4, systemd works a lot better with it
>>>> 
>>>> So what are people's thoughts on enabling the items that weren't set 
>>>> before and moving modules to built-in were > needed? And if it's wanted, 
>>>> does anyone have a quickstart on how these changes should be done 
>>>> properly? My 5 > minutes of google and 30 minutes of staring at the meta/ 
>>>> subdir didn't yield results.
>>> 
>>> Hi Koen,
>>> 
>>> The base configuration for the qemu* machines is kept as minimal as
>>> possible by design. It is supposed to be used as a building block, not
>>> cater to all the different image types we can throw at them by default.
>> 
>> It sounds we need to remove the qemu machines from OE-core and replace them 
>> with more useful ones if we
>> want people to actually test images with the machine present in OE-core. The 
>> current kernel config blocks me
>> from merging a recent udev and systemd into oe-core since it can't be tested 
>> with only oe-core in bblayers.conf.
> 
> I don't think we need to go this far. The configuration as it currently stands
> is not a golden standard, and in fact is already scheduled for some 
> improvements
> in the yocto 1.1 timeframe.
> 
> I'd consider this a suggestion for some new feature groups.
> 
> I wouldn't considering enabling groups of functionality that the community 
> needs
> for common higher level functional testing being extra or the kitchen
> sink. If we
> come up with feature groups, and name those groups, it is possible to
> disable them
> as well as enable them conditionally.
> 
>> I've found minimalistic kernel configs a huge pain since you need to know 
>> the mapping between "userspace error
>> X" and "CONFIG_SOMETHING=y", which most people don't know or want to know. 
>> With superset configs
>> customers (and users) can tweak it till it breaks, instead of tweaking till 
>> it works.
> 
> There's definitely two sides to this. Keeping the configuration tight
> and minimal is
> the embedded roots of these configurations. The problem with large
> configurations
> is the test matrix, which is something that we try to take seriously.
> If there's an
> explicitly enabled configuration, there's a known test for it and core
> functionality that
> can enable it (and for the record, I won't claim that this is 100%
> followed, but that's
> something we aim to improve).
> 
> Having named groups (where they names are the high level functionality) that
> provide optional configuration that can be enabled, tends to hit the
> middle ground
> between these two issues. Users can see the name and grab onto the
> functionality,
> while the core set of configs stays clean and small.
> 
>> 
>> I'm not saying the qemu kernel configs needs to have everything enabled, 
>> since they are emulated machines
>> which simply cannot have various extras (PCI cards) or have a hard time 
>> using them (USB devices are a pain in
>> qemu). But having 'basic' things like devtmpfs disabled is counterproductive 
>> as Scott and I found out.
> 
> Agreed. This goes back to the functionality to enable common use cases and
> requirements. If you want to send suggestions via patches (config fragments
> and SRC_URI updates) or just send lists of missing functionality and a mapping
> to the higher level requirement, we can work together to enable what we need 
> and
> move the rest to optional features or other layers.

The changes I made are (diffing the result from extract-ikconfig):

devtmpfs:

-# CONFIG_DEVTMPFS is not set
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y

cgroups:

-# CONFIG_CGROUPS is not set
-# CONFIG_NAMESPACES is not set
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_DEBUG=y
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CPUSETS=y
+# CONFIG_PROC_PID_CPUSET is not set
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_BLK_CGROUP=y
+# CONFIG_DEBUG_BLK_CGROUP is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+CONFIG_USER_NS=y
+CONFIG_PID_NS=y
+CONFIG_NET_NS=y
-# CONFIG_FREEZER is not set
+CONFIG_FREEZER=y

Fuse/cuse:

-# CONFIG_FUSE_FS is not set
+CONFIG_FUSE_FS=y
+CONFIG_CUSE=y

taskstats:

-# CONFIG_TASKSTATS is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y

Autofs:

-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS4_FS=y

So of those change I would group them as:

needed: devtmpfs, cgroups
nice to have, but not critical: taskstats
nice to have as module, but not critical: fuse/cuse
nice to have as builtin, but fine as module: autofs

I haven't touched the blockdev or netdev cgroup throttling since I have no use 
for that yet. I can now boot systemd-GNOME in qemu-arm and have IO numbers in 
htop, so my itches have been scratched with the above. 

regards,

Koen




_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to