VirtIO (and probably other modules as well) is built-in, make it modular...

Bug #1475078 reported by Thiago Martins
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Confirmed
Wishlist
Andy Whitcroft
Xenial
Won't Fix
Wishlist
Andy Whitcroft
Yakkety
Won't Fix
Undecided
Tim Gardner

Bug Description

Guys,

Can Canonical ship Ubuntu with its Linux in a modular way?

Honestly, don't understand why some modules are compiled as built-in, instead of modules, for example (NET/BLK/PCI/etc):

---
ubuntu@vivid-1:~$ grep VIRTIO /boot/config-3.19.0-23-generic
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=y
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
---

While on Debian, it is all modular, as expected:

---
debian@jessie-1:~# grep VIRTIO /boot/config-3.16.0-4-amd64
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=m
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=m
CONFIG_VIRTIO_CONSOLE=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_VIRTIO=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
# CONFIG_VIRTIO_MMIO is not set
---

I see no reason to load this modules in a non-virtualized environments.

Thoughts!?

Best,
Thiago

ProblemType: Bug
DistroRelease: Ubuntu 15.04
Package: linux-image-3.19.0-23-generic 3.19.0-23.24
ProcVersionSignature: Ubuntu 3.19.0-22.22-generic 3.19.8-ckt1
Uname: Linux 3.19.0-22-generic x86_64
ApportVersion: 2.17.2-0ubuntu1.1
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: tmartins 3485 F.... pulseaudio
CurrentDesktop: Unity
Date: Wed Jul 15 21:44:14 2015
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-10-27 (261 days ago)
InstallationMedia: Ubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022.1)
MachineType: Apple Inc. MacBookAir4,2
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.19.0-22-generic.efi.signed root=UUID=f64e109d-bc06-43ec-8ca8-d10e4f915d2e ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.19.0-22-generic N/A
 linux-backports-modules-3.19.0-22-generic N/A
 linux-firmware 1.143.2
SourcePackage: linux
UpgradeStatus: Upgraded to vivid on 2015-02-02 (163 days ago)
dmi.bios.date: 10/09/2013
dmi.bios.vendor: Apple Inc.
dmi.bios.version: MBA41.88Z.0077.B11.1310091428
dmi.board.asset.tag: Base Board Asset Tag#
dmi.board.name: Mac-742912EFDBEE19B3
dmi.board.vendor: Apple Inc.
dmi.board.version: MacBookAir4,2
dmi.chassis.type: 10
dmi.chassis.vendor: Apple Inc.
dmi.chassis.version: Mac-742912EFDBEE19B3
dmi.modalias: dmi:bvnAppleInc.:bvrMBA41.88Z.0077.B11.1310091428:bd10/09/2013:svnAppleInc.:pnMacBookAir4,2:pvr1.0:rvnAppleInc.:rnMac-742912EFDBEE19B3:rvrMacBookAir4,2:cvnAppleInc.:ct10:cvrMac-742912EFDBEE19B3:
dmi.product.name: MacBookAir4,2
dmi.product.version: 1.0
dmi.sys.vendor: Apple Inc.

Revision history for this message
Thiago Martins (martinx) wrote :
Revision history for this message
Brad Figg (brad-figg) wrote : Status changed to Confirmed

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed
tags: added: utopic
Revision history for this message
Thiago Martins (martinx) wrote : Re: VirtIO is built-in, make it modular...

Just for the record, I would give an use case example...

For high performance virtualized environments, we're seeing new solutions popping out in the market, for example:

* Netmap / VALE (mSwitch).

But, since Ubuntu ships VirtIO as a buil-in module, It is not possible to use/evaluate Netmap (VirtIO version) with it.

This is a show stopping for Ubuntu in a high performance virt-env... While Debian is fine.

Ubuntu Kernel Team should definitively make its "linux-image" more modular, there is no doubt about this.

OpenStack for Telcos (NFV subject) will definitively need Netmap / VALE, or DPDK, for example... So, Ubuntu should not do things that breaks future development of high speed virtual environments.

Think forward, Linux is modular. No need to compile modules as built-in.

Just my two Bitcents...

:-)

Changed in linux (Ubuntu):
importance: Undecided → Wishlist
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
assignee: nobody → Andy Whitcroft (apw)
milestone: none → ubuntu-15.07
Revision history for this message
Thiago Martins (martinx) wrote :

YAY!! :-D

That's why I love Launchpad!

But, you meant "15.10", and not "15.07... Am I right?

I hope to see the future package "linux-generic-lts-wily" for Trusty, in a modular fashion as well! Don't forget that!

Thank you so much!

Cheers!
Thiago

Revision history for this message
Thiago Martins (martinx) wrote :

Oh, BTW, I believe that the Linux Kernel configuration should be entirely modular, and not only the VirtIO related modules. ;-)

summary: - VirtIO is built-in, make it modular...
+ VirtIO (and probably other modules as well) is built-in, make it
+ modular...
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.07 → ubuntu-15.08
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.08 → ubuntu-15.09
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.09 → ubuntu-15.10
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.10 → ubuntu-15.11
Revision history for this message
Thiago Martins (martinx) wrote :

Hey guys,

Any plans to make Linux more modular for 16.04 ? I just installed it and modules are still built-in...

---
ubuntu@xenial:~$ grep VIRTIO /boot/config-4.2.0-17-generic
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=y
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
---

I would like to help testing this, to end up with 16.04 in shape!

Lets do it?!

Best,
Thiago

Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.11 → ubuntu-15.12
Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-15.12 → ubuntu-16.01
Revision history for this message
Thiago Martins (martinx) wrote : Re: [Bug 1475078] Re: VirtIO (and probably other modules as well) is built-in, make it modular...

That's nice! How can I help?

I would like to make sure that Linux 4.4 on Xenial have this bug fixed!

I think I can help... Where is located the Ubuntu Linux package (its
debian/ subdir)? Is it a Git repo used by git-buildpackage or
something? :-)

On 19 January 2016 at 08:30, Andy Whitcroft <email address hidden> wrote:
> ** Changed in: linux (Ubuntu)
> Milestone: ubuntu-15.12 => ubuntu-16.01
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1475078
>
> Title:
> VirtIO (and probably other modules as well) is built-in, make it
> modular...
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1475078/+subscriptions

Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-16.01 → ubuntu-16.02
Revision history for this message
Thiago Martins (martinx) wrote :

Any news about this guys?

I'm on Linux 4.4.0-11-generic / Xenial and the kernel isn't modular yet!

Andy Whitcroft (apw)
Changed in linux (Ubuntu):
milestone: ubuntu-16.02 → ubuntu-16.03
Revision history for this message
Thiago Martins (martinx) wrote :

So, no deal?

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Its a bit late for Xenial. Andy and I discussed this for the next release. The reasons for building in some of these sub-systems no longer exists, so we'll start modularizing in the Y series.

Changed in linux (Ubuntu Xenial):
status: Confirmed → Won't Fix
Tim Gardner (timg-tpi)
Changed in linux (Ubuntu Yakkety):
status: In Progress → Fix Committed
Revision history for this message
Thiago Martins (martinx) wrote :

Awesome!!!

I'm curious, when Xenial receives the Yakkety kernel, will it be more modular too?

I'm asking this because Xenial have a status of "Won't fix" but, since Canonical backports it, maybe it will benefit from this as well, am I right?

Deploying Yakkety now to experiment it... :-)

Thanks!
Thiago

Revision history for this message
Tim Gardner (timg-tpi) wrote :

LTS Yakkety (in Xenial) should have nearly the same config settings as Yakkety.

Revision history for this message
Andy Whitcroft (apw) wrote :

@Tim -- something in the latest batch of updates is breaking UDEV, probabally the move of AF_UNIX =m.

Revision history for this message
Tim Gardner (timg-tpi) wrote :

Revert "UBUNTU: [Config] CONFIG_UNIX=m"

Revision history for this message
Thiago Martins (martinx) wrote :

Interesting... On Debian SID this is also not a module:

---
thiago@debian-sid-1:~$ grep CONFIG_UNIX /boot/config-4.5.0-2-amd64
...
CONFIG_UNIX=y
....
---

On 8 June 2016 at 14:43, Tim Gardner <email address hidden> wrote:

> Revert "UBUNTU: [Config] CONFIG_UNIX=m"
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1475078
>
> Title:
> VirtIO (and probably other modules as well) is built-in, make it
> modular...
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1475078/+subscriptions
>

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (3.4 KiB)

This bug was fixed in the package linux - 4.8.0-11.12

---------------
linux (4.8.0-11.12) yakkety; urgency=low

  * change_hat is logging failures during expected hat probing (LP: #1615893)
    - SAUCE: apparmor: Fix auditing behavior for change_hat probing

  * deleted files outside of the namespace are not being treated as
    disconnected
    (LP: #1615892)
    - SAUCE: apparmor: deleted dentries can be disconnected

  * stacking to unconfined in a child namespace confuses mediation
    (LP: #1615890)
    - SAUCE: apparmor: special case unconfined when determining the mode

  * apparmor module parameters can be changed after the policy is locked
    (LP: #1615895)
    - SAUCE: apparmor: fix: parameters can be changed after policy is locked

  * AppArmor profile reloading causes an intermittent kernel BUG (LP:
    #1579135)
    - SAUCE: apparmor: fix vec_unique for vectors larger than 8

  * label vec reductions can result in reference labels instead of direct
    access
    to labels (LP: #1615889)
    - SAUCE: apparmor: reduction of vec to single entry is just that entry

  * profiles from different namespaces can block other namespaces from being
    able to load a profile (LP: #1615887)
    - SAUCE: apparmor: profiles in one ns can affect mediation in another ns

  * The label build for onexec when stacking is wrong (LP: #1615881)
    - SAUCE: apparmor: Fix label build for onexec stacking.

  * The inherit check for new to old label comparison for domain transitions
    is
    wrong (LP: #1615880)
    - SAUCE: apparmor: Fix new to old label comparison for domain transitions

  * warning stack trace while playing with apparmor namespaces (LP: #1593874)
    - SAUCE: apparmor: fix stack trace when removing namespace with profiles

  * __label_update proxy comparison test is wrong (LP: #1615878)
    - SAUCE: apparmor: Fix __label_update proxy comparison test

  * reading /sys/kernel/security/apparmor/profiles requires CAP_MAC_ADMIN
    (LP: #1560583)
    - SAUCE: apparmor: Allow ns_root processes to open profiles file
    - SAUCE: apparmor: Consult sysctl when reading profiles in a user ns

  * policy namespace stacking (LP: #1379535)
    - SAUCE: (no-up) apparmor: rebase of apparmor3.5-beta1 snapshot for 4.8
    - SAUCE: add a sysctl to enable unprivileged user ns AppArmor policy loading

  * Miscellaneous Ubuntu changes
    - [Debian] Dynamically determine linux udebs package name
    - [Debian] d-i -- fix dtb handling in new kernel-wedge form
    - SAUCE: apparmor: Fix FTBFS due to bad include path
    - SAUCE: apparmor: add data query support
    - [Config] Set CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT=y

  * Miscellaneous upstream changes
    - fixup backout policy view capable for forward port
    - apparmor: fix: Rework the iter loop for label_update
    - apparmor: add more assertions for updates/merges to help catch errors
    - apparmor: Make pivot root transitions work with stacking
    - apparmor: convert delegating deleted files to mediate deleted files
    - apparmor: add missing parens. not a bug fix but highly recommended
    - apparmor: add a stack_version file to allow detection of bug fixes
    - apparmor: push path looku...

Read more...

Changed in linux (Ubuntu Yakkety):
status: Fix Committed → Fix Released
Revision history for this message
Thiago Martins (martinx) wrote :

I installed Linux 4.8 from "Ubuntu Kernel Team PPA" (ppa:canonical-kernel-team/ppa) on my Xenial, here is the result:

--
grep VIRTIO /boot/config-4.8.0-25-generic
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=y
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
--

 Still not modular... :-(

 Any plans to make this available to Xenial via "linux-image-generic-lts-yakkety" ?

Revision history for this message
Thiago Martins (martinx) wrote :

Guys,

 I'm marking this as "New", because this bug/improvement was not fixed on "4.8.0-11.12".

 Look:

---
tmartins@blade:~$ lsb_release -ra
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.10
Release: 16.10
Codename: yakkety

tmartins@blade:~$ grep VIRTIO /boot/config-4.8.0-26-generic
CONFIG_VIRTIO_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS_COMMON=m
CONFIG_NET_9P_VIRTIO=m
CONFIG_VIRTIO_BLK=y
CONFIG_SCSI_VIRTIO=m
CONFIG_VIRTIO_NET=y
CONFIG_CAIF_VIRTIO=m
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_VIRTIO=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_PCI_LEGACY=y
CONFIG_VIRTIO_BALLOON=y
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
---

 See it? "CONFIG_VIRTIO_NET=y" and few others... Still not as modules...

Cheers!
Thiago

Changed in linux (Ubuntu Yakkety):
status: Fix Released → Confirmed
Changed in linux (Ubuntu):
status: Fix Released → Confirmed
Revision history for this message
Thiago Martins (martinx) wrote :

Guys?! :-P

Revision history for this message
Andy Whitcroft (apw) wrote : Closing unsupported series nomination.

This bug was nominated against a series that is no longer supported, ie yakkety. The bug task representing the yakkety nomination is being closed as Won't Fix.

This change has been made by an automated script, maintained by the Ubuntu Kernel Team.

Changed in linux (Ubuntu Yakkety):
status: Confirmed → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.