Skip to contentSkip to conversation

Stop the Linux kernel madness

DISCUSSION Petr Vandrovec 6 participants 10 messages Jun 22, 2004 – Jun 23, 2004

lore
Share & tools
lore
#0 lore raw
Quoted 4 lines · Andrea Arcangeli

To make the last recent example we had to break the source API with the drivers to fix the release_pages race that Andrew found and fixed in mainline too. That changes page->count into page->_count and quite some drivers broke even outside the kernel. I had the choice of not breaking

FYI, vmware modules broke during your change because 2.4.20-xx kernels from RedHat moved page_count() from linux/mm.h to linux/mm_inline.h, and made it unavailable for non-GPL modules. So we had to do

#ifndef page_count
#define page_count(p) (p)->count
#endif

and this #ifndef test was broken by making page_count inline function.

But I'd like to publicly thank you for your effort, I really appreciate it.
Best regards,
Petr Vandrovec

#1 lore raw

On Tue, 2004-06-22 16:38:15 +0200, Petr Vandrovec <[email protected]> wrote in message <[email protected]>:

Quoted 11 lines · Andrea Arcangeli

FYI, vmware modules broke during your change because 2.4.20-xx kernels from RedHat moved page_count() from linux/mm.h to linux/mm_inline.h, and made it unavailable for non-GPL modules. So we had to do

#ifndef page_count
#define page_count(p) (p)->count
#endif

and this #ifndef test was broken by making page_count inline function.

Just merge the vmware modules upstream. Then, such breakage will be detected early and probably fixed without putting a lot of work into it (from your point of view).

MfG, JBG

Signature · 4 lines
   Jan-Benedict Glaw       [email protected]    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
#2 lore raw
Quoted 3 lines · Jan-Benedict Glaw

Just merge the vmware modules upstream. Then, such breakage will be detected early and probably fixed without putting a lot of work into it (from your point of view).

a) vmware modules themselves aren't under a free license
b) even if they were there's not really much interest in modules that can't work with non-free userspace

#3 lore raw

On Tue, 2004-06-22 18:32:15 +0100, Christoph Hellwig <[email protected]> wrote in message <[email protected]>:

Quoted 6 lines · Jan-Benedict Glaw
Quoted 3 lines

Just merge the vmware modules upstream. Then, such breakage will be detected early and probably fixed without putting a lot of work into it (from your point of view).

a) vmware modules themselves aren't under a free license

That can be changed.

Quoted 2 lines

b) even if they were there's not really much interest in modules that can't work with non-free userspace

...as well as this issue. They'd get some (limited but sufficient) free maintainence for their software back. See? No technical issues 8^P The very same could be said about 4Front's OSS drivers.

MfG, JBG

Signature · 4 lines
   Jan-Benedict Glaw       [email protected]    . +49-172-7608481
   "Eine Freie Meinung in  einem Freien Kopf    | Gegen Zensur | Gegen Krieg
    fuer einen Freien Staat voll Freier Bürger" | im Internet! |   im Irak!
   ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
#4 lore raw
Quoted 10 lines · Jan-Benedict Glaw

On Tue, 2004-06-22 18:32:15 +0100, Christoph Hellwig <[email protected]> wrote in message <[email protected]>:

Quoted 6 lines · Jan-Benedict Glaw
Quoted 3 lines

Just merge the vmware modules upstream. Then, such breakage will be detected early and probably fixed without putting a lot of work into it (from your point of view).

a) vmware modules themselves aren't under a free license

That can be changed.

Yes.

Quoted 6 lines
Quoted 2 lines

b) even if they were there's not really much interest in modules that can't work with non-free userspace

...as well as this issue. They'd get some (limited but sufficient) free maintainence for their software back. See? No technical issues 8^P The very same could be said about 4Front's OSS drivers.

I doubt. I emailed with Alan Cox back in 2000 (when VMware 2.0 was to be released), and he told me that there is no way vmmon & vmnet could find its way into kernel, regardless of license we'll pick.

We do not have to go for examples very far - bochs currently does not provide any networking backend which would work like real network card, without any restrictions on MAC addresses, host-guest or guest-guest communications. Patch to get it to work over vmnet's interface was task for half of one afternoon. Would that change opinion of peoples who accept only free software? I doubt...

So for now it will probably stay way it is - updates are semi-regullary distributed from my site, some distros picks them up and repackage for their customers, and everybody is happy that it more or less works.

Best regards,
Petr Vandrovec

#5 lore raw
In reply to Jan-Benedict Glaw
Quoted 5 lines · Jan-Benedict Glaw

On Tue, 2004-06-22 18:32:15 +0100, Christoph Hellwig <[email protected]> wrote in message <[email protected]>:

Quoted 2 lines · Jan-Benedict Glaw
Quoted 8 lines
Quoted 5 lines
Quoted 3 lines

Just merge the vmware modules upstream. Then, such breakage will be detected early and probably fixed without putting a lot of work into it (from your point of view).

a) vmware modules themselves aren't under a free license

That can be changed.

Whatever it is that VMware needs in the kernel can probably be generalized in some way that makes it useful to other things (like Win4Lin) and then merged into mainline.

#6 lore raw
Quoted 3 lines · Timothy Miller

Whatever it is that VMware needs in the kernel can probably be generalized in some way that makes it useful to other things (like Win4Lin) and then merged into mainline.

We already have drivers/net/tun.c thaqt works nicely with Hercules and MoL for me, but I guess the vmware folks want some additional deep magic.

#7 lore raw
Quoted 7 lines · Christoph Hellwig
Quoted 3 lines · Timothy Miller

Whatever it is that VMware needs in the kernel can probably be generalized in some way that makes it useful to other things (like Win4Lin) and then merged into mainline.

We already have drivers/net/tun.c thaqt works nicely with Hercules and MoL for me, but I guess the vmware folks want some additional deep magic.

Unless I missed something, there can be only one userspace reader/writter attached to the device, while vmnet works like real network segment to which you can connect any number of userspace processes, and each of processes gets only packets which are targeted for it (as each process has its own MAC address). And vmnet interface does not have to have any representation in host's networking (it can be used just as a channel for communication between two VMs), which is important if your guests are running potentially dangerous code, like network worms.

vmnet module actually provides tun-like character device, but with several differences:
* You can connect any number of userspace processes to it.
* You can connect kernel end to nothing (complete guest-host separation), or
* You can create new network device for kernel end (you'll route between guests and real world) or
* You can attach this character device to some existing network device, creating "bridge".

Of these features tun supports only third (creating new kernel network device), and with help of "normal" bridge also fourth. Correct me if I'm wrong.
Best regards,
Petr Vandrovec

#8 lore raw
Quoted 18 lines · Petr Vandrovec
Quoted 7 lines · Christoph Hellwig
Quoted 3 lines · Timothy Miller

Whatever it is that VMware needs in the kernel can probably be generalized in some way that makes it useful to other things (like Win4Lin) and then merged into mainline.

We already have drivers/net/tun.c thaqt works nicely with Hercules and MoL for me, but I guess the vmware folks want some additional deep magic.

Unless I missed something, there can be only one userspace reader/writter attached to the device, while vmnet works like real network segment to which you can connect any number of userspace processes, and each of processes gets only packets which are targeted for it (as each process has its own MAC address). And vmnet interface does not have to have any representation in host's networking (it can be used just as a channel for communication between two VMs), which is important if your guests are running potentially dangerous code, like network worms.

Quoted 4 lines

vmnet module actually provides tun-like character device, but with several differences:
* You can connect any number of userspace processes to it.
* You can connect kernel end to nothing (complete guest-host separation), or

These can be done purely in userspace - a daemon can exchange the data between the processes (VMs).

Quoted 2 lines

* You can create new network device for kernel end (you'll route between guests and real world) or

This can be done with tun, preferably opened by the abovementioned daemon.

Quoted 2 lines

* You can attach this character device to some existing network device, creating "bridge".

And this is IMO pretty ugly to do. It is probably needed to get NetBEUI working between the VM and real network.

Quoted 2 lines

Of these features tun supports only third (creating new kernel network device), and with help of "normal" bridge also fourth. Correct me if I'm wrong.

Signature · 2 lines
Vojtech Pavlik
SuSE Labs, SuSE CR
#9 lore raw
Quoted 7 lines · Vojtech Pavlik
Quoted 4 lines

vmnet module actually provides tun-like character device, but with several differences:
* You can connect any number of userspace processes to it.
* You can connect kernel end to nothing (complete guest-host separation), or

These can be done purely in userspace - a daemon can exchange the data between the processes (VMs).

... as UML already does it, anyway. I'm pretty sure the various methods UML uses are quite applicable to VM too.

Sincerely,
Lars Marowsky-Brée <[email protected]>

Signature · 3 lines
High Availability & Clustering	    \ ever tried. ever failed. no matter.
SUSE Labs, Research and Development | try again. fail again. fail better.
SUSE LINUX AG - A Novell company    \ 	-- Samuel Beckett