# linux-2.6.4-love2 aka "Touchy Feely"

## bssteph

Get touchy feely with your computer today!

http://bssteph.irtonline.org/linux/patches/2.6/2.6.4/2.6.4-love2/2.6.4-love2.patch.bz2

http://bssteph.irtonline.org/linux/patches/2.6/2.6.4/2.6.4-love2/love-sources-2.6.4-r2.ebuild

We're back to patching against baseline, unpatched 2.6.4 because I managed to confuse everyone with the format last time. So things are the way they should be. Again.

There's also a new ebuild, hooray. It should work fine for everyone, at the least It Works For Me.

Other changes:

 - the usual updates from mm. noteworthy are some I/O, reiserfs, and nfs updates

 - anticipatory scheduler works again, but we had to remove the cfq ionice patch. For most people this should be meaningless, but say otherwise if you suffer noticable cfq regressions. cfq is still around, but note that normally as is the default and we honor that again, so don't forget your elevator=cfq

 - amd76x power management for SMP is added

 - updates to LIDS (this patch is from THE FUTURE, check their site)

 - aureal drivers removed (they're already included)

 - some driver cleanups. packet writing, loopback, various framebuffers, and LIDS should all compile now.

 - reiser4 still out. Sorry.

Enjoy!

EDIT 1: Compress loop wasn't updated for the I/O changes in mm so I took a stab at it following Andrew's example... if it's broken let me know. Tarball updated.Last edited by bssteph on Tue Mar 16, 2004 1:40 am; edited 1 time in total

----------

## scout

begining to download it right now !

I know I am going to say this is a nice piece of work   :Wink: 

[EDIT]Huge, my pda now syncs again; I had problems with ppp and 2.6.3

this is a nice piece of work   :Wink: 

----------

## bssteph

My poor laptop keeps on feeling better and better, that's for sure.

LKML status update.

A huge i2c patch just hit the list, it may or may not patch well against love2.

If anyone uses pmdisk there's a simple patch you should apply.

----------

## soaringcondor

Running fine on my system now.  Thank you for the ebuild.

I'm more than a little bit of a n00b  :Rolling Eyes: , passing "elevator=cfq" to the kernel at boot will use the different, experimental scheduler, correct?

----------

## bssteph

 *soaringcondor wrote:*   

> Running fine on my system now.  Thank you for the ebuild.
> 
> I'm more than a little bit of a n00b :roll:, passing "elevator=cfq" to the kernel at boot will use the different, experimental scheduler, correct?

 

It's not experimental, but yes. It tries to be a bit better on the interactivity side of scheduling, for a better desktop feel. :)

----------

## Jake

Excellent. Now that the ionice patch is out of the way, we can get the runtime selectable IO scheduler back. I even made a patch against love2. Download it at http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz

To set cfq on /dev/hda, for example (with this patch), do

```
echo cfq > /sys/block/hda/queue/io_scheduler
```

I haven't tried it yet (I need reiser4), but it compiles, and I'm running it now on vanilla 2.6.4. The reason I use it is because cfq, even ioniced, skips my MP3s under heavy load. as doesn't, but when I'm not listening to music, I may want cfq, which is generally more responsive under heavy loads.

----------

## bssteph

 *Jake wrote:*   

> Excellent. Now that the ionice patch is out of the way, we can get the runtime selectable IO scheduler back. I even made a patch against love2. Download it at http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz
> 
> To set cfq on /dev/hda, for example (with this patch), do
> 
> ```
> ...

 

THAT'S what I forgot... Thanks man.

Everyone that thinks they want to have different schedulers for different devices (like noop for a flash device) get this patch now.

I wish I could monkey reiser4 in, I honestly do. I've said this before, but maybe I'll look at it in a day or two and work at it.

----------

## _Nomad_

It's running great here... anticipatory scheduler is working perfect  :Very Happy: 

----------

## neenee

it compiled and runs fine here as well  :Wink: 

i too am using the anticipatory scheduler

until it disappoints me. which hopefully is

never.

----------

## Jake

Here's what I've found out about reiser4:

If you want to make things easy, pull out (bottom up)

```
radix-tree-tagging.patch

irq-safe-pagecache-lock.patch

tag-dirty-pages.patch

tag-writeback-pages.patch

stop-using-dirty-pages.patch

stop-using-io-pages.patch

stop-using-locked-pages.patch

stop-using-clean-pages.patch

unslabify-pgds-and-pmds.patch

slab-stop-using-page-list.patch

page_alloc-stop-using-page-list.patch

hugetlb-stop-using-page-list.patch

pageattr-stop-using-page-list.patch

readahead-stop-using-page-list.patch

compound-pages-stop-using-lru.patch

remove-page-list.patch

4g-2.6.0-test2-mm2-A5.patch

4g4g-locked-userspace-copy.patch
```

One hunk of unslabify-pgds-and-pmds.patch may fail, but it's an easy fix. When you apply reiser4, there'll be a few easy to fix hunks. If you get a compile time error about an #endif, comment it out.

You can probably get away with only pulling:

```
4g4g-locked-userspace-copy.patch

4g-2.6.0-test2-mm2-A5.patch

remove-page-list.patch

stop-using-dirty-pages.patch

stop-using-io-pages.patch

stop-using-clean-pages.patch

stop-using-locked-pages.patch
```

but you'll have to change a bunch of "list"s to "lru"s in mm/page_alloc.c and "page_lock"s to "tree_lock"s in fs/reiser4/txnmgr.c, fs/reiser4/wander.c, fs/reiser4/as_ops.c, fs/reiser4/plugin/pseudo/pseudo.c, and fs/reiser4/plugin/file/file.c

Either way, it dies with:

```
  LD      .tmp_vmlinux1

fs/built-in.o(.text+0x793d0): In function `update_journal_header':

: undefined reference to `blk_run_queues'

fs/built-in.o(.text+0x7945d): In function `update_journal_footer':

: undefined reference to `blk_run_queues'

fs/built-in.o(.text+0x7ef2d): In function `wait_io':

: undefined reference to `blk_run_queues'

fs/built-in.o(.text+0x83caa): In function `writeout':

: undefined reference to `blk_run_queues'

fs/built-in.o(.text+0x8a7be): In function `reiser4_status_init':

: undefined reference to `blk_run_queues'

fs/built-in.o(.text+0x8abeb): more undefined references to `blk_run_queues' follow

make: *** [.tmp_vmlinux1] Error 1
```

I thought the runtime selectable IO scheduler patch might be causing the problem, but I get exactly the same error without it.

If I disable reiser4, the patched sources compile fine, even with the runtime selectable IO scheduler patch.Last edited by Jake on Tue Mar 16, 2004 6:09 pm; edited 1 time in total

----------

## ejohnson

Bssteph thanks for handl'in the kernel  :Smile: 

@Jake, thanks for looking into reiser4.  I got page_alloc.c to compile with all the changes to "lru", but the page_locks had me stumped.  I'm glad bssteph and you are on the case  :Smile: 

i2c changes are still needed for my chips cause they aren't functioning.  So over the next few days I'll on that as well.  If I find anything I'll post it.  G'night!

----------

## nevynxxx

Is the evil formally knowen as Supermount still in? I refuse  emerge the evil-twin of love that contains this blasphemy. Me still on pre-supermount love, and plan to remain that way, but my uptime is looking sillyly high now.

----------

## Nebvin

Been having a bit of trouble with the 2.6.4 series, and I just tried vanilla 2.6.4 and I have the same problem as well so I don't know if anyone here can help me, but when I shutdown the computer when it gets to the point where hotplug is shutting down I get a kernel panic saying:

Kernel panic: Fatal exception in interrupt

In interrupt handler - not syncing

I know in the pre release for 2.6.4 there was an option for changing interrupt polling which I believe was supposed to help this problem, but changing it never helped.

If anyone has any advice it would be appreciated, thank you

----------

## ed0n

its weird but love2 is not installing the modules to their place .

no error messages no warning no modules  :Smile:  .

----------

## zerojay

 *nevynxxx wrote:*   

> Is the evil formally knowen as Supermount still in? I refuse  emerge the evil-twin of love that contains this blasphemy. Me still on pre-supermount love, and plan to remain that way, but my uptime is looking sillyly high now.

 

That's an incredibly stupid reason to not use something. You do realize you that menuconfig gives you a choice to enable supermount in the kernel or not, right? If you don't like or want supermount, don't enable it.

----------

## bssteph

Hey everyone.

I'm busy for a while, but I thought I'd check in and say that when I find the time I'm going to try doing a love against 2.6.5-rc1-mm1 (minus the irritating 4k-stack-always-on patch) and add reiser4 and elv-select (with two thank yous to Jake).

Can't guarentee when that will be, I have meetings, classes, and embedded dev stuff for at least another 6 hours.

@Jake: the big I/O change in mm2 was making blk_run_queues() no longer necessary, so it was removed. The cases I saw in mm2 just outright removed the function, and I did the same for compress loopback. This may be safe for reiser4 but I can't tell until I get a chance to look.

----------

## nevynxxx

 *DarkStalker wrote:*   

> 
> 
> That's an incredibly stupid reason to not use something. You do realize you that menuconfig gives you a choice to enable supermount in the kernel or not, right? If you don't like or want supermount, don't enable it.

 

Short answer yes.

Long asnwer, well I don't have any real reason to use love, I don't *need* any of the things it provides, I simply enjoy testing new things out. I happen to agree with lovechild on the supermount thing. Its a bad way of doing it. I don't want to promote a bad thing, so in protest I wont install any kernel that has that patch. Obviously If it makes it to the main line kernel I will change change that policy, after emailing the kernel devs.

I am looking into makeing an equivilent of the GVM that will be command line based, i.e. a cli system to do what supermount does but in response to dbus signals. I don't *need* this functionality either, but (1) I want to know if I can do it, I like a challenge, and (2) it seems a good way of putting back into the community.

The reason for the post was that there isn't really any point in my not-installing-love-'cause-it-has-supermount if I don't (1) tell the people that make it thatI'm doing it and (2) tell the people why I'm doing it.

This has been a public service announcment, thankyou for reading.

----------

## Jake

 *bssteph wrote:*   

> Hey everyone.
> 
> I'm busy for a while, but I thought I'd check in and say that when I find the time I'm going to try doing a love against 2.6.5-rc1-mm1 (minus the irritating 4k-stack-always-on patch) and add reiser4 and elv-select (with two thank yous to Jake).
> 
> Can't guarentee when that will be, I have meetings, classes, and embedded dev stuff for at least another 6 hours.
> ...

 

I don't think it's safe. I commented all the blk_run_queues() and it compiled fine, but I got the dreaded "kernel panic: no init found" when I tried to run it. Strangely, init isn't even on reiser4, only /usr and /opt are.

----------

## Master_Of_Disaster

2.6.5-rc1

2.6.5-rc1-mm1

are out

----------

## spb

Regarding Reiser4, does anyone know what's happened to the address_space struct? It seems to have lost four members that reiser4 is using quite heavily. And no, I'm not talking about 'page_lock'. At a crude guess I'm 10 files away from it compiling properly, and this is starting to irritate me.

----------

## bssteph

 *Jake wrote:*   

>  *bssteph wrote:*   Hey everyone.
> 
> I'm busy for a while, but I thought I'd check in and say that when I find the time I'm going to try doing a love against 2.6.5-rc1-mm1 (minus the irritating 4k-stack-always-on patch) and add reiser4 and elv-select (with two thank yous to Jake).
> 
> Can't guarentee when that will be, I have meetings, classes, and embedded dev stuff for at least another 6 hours.
> ...

 

I may have missed some sort of handling necessary for the removal blk_run_queues(). Thinking about what it did, it seems odd for it to just be removed, but I'm no guru. I'll check the mm2 patch later... hours-from-now-later. Car in a box is killing me.

----------

## steel300

 *bssteph wrote:*   

>  *Jake wrote:*   Excellent. Now that the ionice patch is out of the way, we can get the runtime selectable IO scheduler back. I even made a patch against love2. Download it at http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz
> 
> To set cfq on /dev/hda, for example (with this patch), do
> 
> ```
> ...

 

The elv-select patch is still broken. It oopses on USB mass storage and just doesn't work in general. I would like to request that it stays out until Nick has updated it.

----------

## luqas

As usual,  runs like a champ... thanks bssteph

----------

## Master_Of_Disaster

Well - this release finally compiles on amd64 for me.

The unistd.h error (appeared with cfq-ionice) should be easy to fix:

```
$ diff -Naur linux-2.6.4-love1/include/asm-x86_64/unistd.h linux-2.6.4-wolk2.0/include/asm-x86_64/unistd.h

--- linux-2.6.4-love1/include/asm-x86_64/unistd.h       2004-03-16 23:31:33.000000000 +0000

+++ linux-2.6.4-wolk2.0/include/asm-x86_64/unistd.h     2004-03-16 22:55:52.967815160 +0000

@@ -490,8 +490,8 @@

 __SYSCALL(__NR_epoll_ctl_old, sys_ni_syscall)

 #define __NR_epoll_wait_old    215

 __SYSCALL(__NR_epoll_wait_old, sys_ni_syscall)

-#define __NR_old_remap_file_pages      216

-__SYSCALL(__NR_old_remap_file_pages, old_remap_file_pages)

+#define __NR_remap_file_pages  216

+__SYSCALL(__NR_remap_file_pages, sys_remap_file_pages)

 #define __NR_getdents64        217

 __SYSCALL(__NR_getdents64, sys_getdents64)

 #define __NR_set_tid_address   218

@@ -536,11 +536,11 @@

 /* 237,238,239 reserved for NUMA API */

 #define __NR_ioprio_set                240

-__SYSCALL(__NR_ioprio_set, sys_ioprio_set);

+__SYSCALL(__NR_ioprio_set, sys_ioprio_set)

 #define __NR_ioprio_get                241

-__SYSCALL(__NR_ioprio_get, sys_ioprio_get);

-

-#define __NR_syscall_max __ioprio_get

+__SYSCALL(__NR_ioprio_get, sys_ioprio_get)

+

+#define __NR_syscall_max __NR_ioprio_get

 #ifndef __NO_STUBS

 /* user-visible error numbers are in the range -1 - -4095 */
```

This did the trick for me.

----------

## Sgaduuw

 *Master_Of_Disaster wrote:*   

> 2.6.5-rc1
> 
> 2.6.5-rc1-mm1
> 
> are out

 

Damn they really never sleep  :Smile: 

----------

## discomfitor

I've been unable to use the previous two releases for some reason.  When I try to log in from qingy, nothing happens.  Same kernel config, and when I go back to 2.6.3 it works properly.  Any ideas?

----------

## joki

compiled and tested cleanly with nforce2 ... it has the love  :Smile: 

----------

## sawanv

Can anyone please tell me what is the state of the io-scheduler-select patch in this release of the love patches? Do we finally have them or not or do we have to get them from http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz

as specified by Jake?

Also, what is the default scheduler in this release of love sources? Is it cfq or as? Always get confused....

I was getting segfaults when I was trying to mount CDRWs onto packet devices. This was on 2.6.3-love6. Will try out this release and post.

Thanks and good work!!

Sawan

----------

## luqas

CFQ is the default scheduler.

----------

## Jake

 *sawanv wrote:*   

> Can anyone please tell me what is the state of the io-scheduler-select patch in this release of the love patches? Do we finally have them or not or do we have to get them from http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz
> 
> as specified by Jake?
> 
> Also, what is the default scheduler in this release of love sources? Is it cfq or as? Always get confused....
> ...

 

The patch isn't in this release. If you want it, you'll have to get it from my site (the link you posted). steel300 says the patch breaks stuff (USB mass storage, for example), so he doesn't want it in. I haven't tried it in -love2 because I need reiser4. I do, however, have the patch working in vanilla 2.6.4, and I haven't noticed any problems. Note that I do not have a USB mass storage device.

I'm not sure what steel300 means by "does not work in general" because it seems to work for me, even switching under heavy loads.

----------

## bssteph

Jake, what did you do that reiser4 stuff upon? I'm recreating against 2.6.5-rc1 and there is an undefined reference upon link of the pagetable code and it's not immediately evident..

```
arch/i386/mm/built-in.o(.text+0x48a): In function `pgd_alloc':

: undefined reference to `pgd_cache'

arch/i386/mm/built-in.o(.text+0x4ae): In function `pgd_free':

: undefined reference to `pgd_cache'
```

EDIT: base kernel looks irrelevant, this seems to be a patch being reversed that should not be? Odd.

----------

## Jake

 *bssteph wrote:*   

> Jake, what did you do that reiser4 stuff upon? I'm recreating against 2.6.5-rc1 and there is an undefined reference upon link of the pagetable code and it's not immediately evident..
> 
> ```
> arch/i386/mm/built-in.o(.text+0x48a): In function `pgd_alloc':
> 
> ...

 

I was working against 2.6.4-love2. I don't know about those errors; I never got them. My advice for dealing with blk_run_queues() is look at how it's handled in per-backing_dev-unplugging.patch. There are a few places where you should probably change some READs to READ_SYNCs, and WRITEs to WRITE_SYNCs, but I'm not sure what to do with the rest.

I fixed some of the blk_run_queues() stuff and tried booting both bzImages with reiser4 in and without it. Both had the no init problem, so it's not looking good. I must have pulled out too many patches.

----------

## sawanv

 *Jake wrote:*   

>  *sawanv wrote:*   Can anyone please tell me what is the state of the io-scheduler-select patch in this release of the love patches? Do we finally have them or not or do we have to get them from http://people.msoe.edu/~maciejej/patches/2.6.4-love2-io_select.diff.gz
> 
> as specified by Jake?
> 
> Also, what is the default scheduler in this release of love sources? Is it cfq or as? Always get confused....
> ...

 

Thanks for your reply Jake. Now for a really n00b question: how do I apply the damn thing?  :Embarassed:   :Embarassed: 

----------

## chefakito

I seem to be having issues with 2.6.4-love2 an bootsplash -- when I try to compile it, I get:

```
drivers/built-in.o(.text+0xb0622): In function `splash_getraw':

: undefined reference to `con2fb_map'

drivers/built-in.o(.text+0xb0e24): In function `splash_verbose':

: undefined reference to `con2fb_map'

drivers/built-in.o(.text+0xb1308): In function `splash_status':

: undefined reference to `con2fb_map'

drivers/built-in.o(.text+0xb143c): In function `splash_read_proc':

: undefined reference to `con2fb_map'

drivers/built-in.o(.text+0xb1615): In function `splash_write_proc':

: undefined reference to `con2fb_map'

make: *** [.tmp_vmlinux1] Error 1

```

disabling bootsplash allows me to compile normally however.

any ideas?

thanks.  :Smile: 

----------

## Jake

 *sawanv wrote:*   

>  Thanks for your reply Jake. Now for a really n00b question: how do I apply the damn thing?

 

Assuming you saved it to your home directory,

```
cd /usr/src/linux-2.6.4-love2

zcat ~/2.6.4-love2-io_select.diff.gz | patch -p1 < /dev/stdin
```

----------

## bssteph

chefakito: The kernel links fine with bootsplash on my config. What framebuffer device do you use?

----------

## chefakito

I'm using the standard VESA device:

here is my related gfx config:

```

# Graphics support

#

CONFIG_FB=y

# CONFIG_FB_PM2 is not set

# CONFIG_FB_CYBER2000 is not set

# CONFIG_FB_IMSTT is not set

# CONFIG_FB_VGA16 is not set

CONFIG_FB_VESA=y

CONFIG_VIDEO_SELECT=y

# CONFIG_FB_HGA is not set

# CONFIG_FB_RIVA is not set

# CONFIG_FB_CLE266 is not set

# CONFIG_FB_I810 is not set

# CONFIG_FB_MATROX is not set

# CONFIG_FB_RADEON_OLD is not set

# CONFIG_FB_RADEON is not set

# CONFIG_FB_ATY128 is not set

# CONFIG_FB_ATY is not set

# CONFIG_FB_ATY128 is not set

# CONFIG_FB_ATY is not set

# CONFIG_FB_SIS is not set

# CONFIG_FB_NEOMAGIC is not set

# CONFIG_FB_KYRO is not set

# CONFIG_FB_3DFX is not set

# CONFIG_FB_VOODOO1 is not set

# CONFIG_FB_TRIDENT is not set

# CONFIG_FB_VIRTUAL is not set

#

# Console display driver support

#

CONFIG_VGA_CONSOLE=y

# CONFIG_MDA_CONSOLE is not set

CONFIG_DUMMY_CONSOLE=y

CONFIG_FRAMEBUFFER_CONSOLE=m

CONFIG_PCI_CONSOLE=y

CONFIG_FONTS=y

# CONFIG_FONT_8x8 is not set

CONFIG_FONT_8x16=y

# CONFIG_FONT_6x11 is not set

# CONFIG_FONT_PEARL_8x8 is not set

# CONFIG_FONT_ACORN_8x8 is not set

# CONFIG_FONT_MINI_4x6 is not set

# CONFIG_FONT_SUN8x16 is not set

# CONFIG_FONT_SUN12x22 is not set

#

# Logo configuration

#

# CONFIG_LOGO is not set

#

# Bootsplash configuration

#

# CONFIG_BOOTSPLASH is not set

```

EDIT: I was being stupid again.  :Razz:  I had "Framebuffer Console support" compiled as a module -- I had it compiled into the kernel and the error went away. 

----------

## chefakito

more problems from me -- seems like the as scheduler completely blows up on me during boot: 

I get all sorts of badness from as-iosched.c (I think that is it) when I don't pass 'elevator=cfq' to the kernel. 

cfq seems to be working fine for me however. 

It's just that I wanted to try the as scheduler, since cfq seems to make my mp3s skip in kde when I change tabs in konqueror.

----------

## sawanv

 *chefakito wrote:*   

> I'm using the standard VESA device:
> 
> here is my related gfx config:
> 
> ```
> ...

 

Also in your config you seem to have "CONFIG_BOOTSPLASH is not set". How come your bootsplash still works?

I cant seem to get bootsplash to work from 2.6.1-love2...whatever I do I just get a nice 1024*768 console with good fonts but no picture....damn annoying. Must try this series and see......

Sawan

----------

## neenee

both as and cfq work for me  :Wink: 

----------

## chefakito

Was looking at the lkml -- it appears 2.6.4-mm2 will break if you use 'Suspend to Disk support' and the as scheduler together:

http://lkml.org/lkml/2004/3/15/174

There is a patch in the thread, but you have to apply it manually -- I'm going to check if it works.

EDIT: The patch seems to work

----------

## sawanv

Yeahhhhhhhh!! 

Packet CD writing seems to work in this patchset and the selectable IO patch applied (with about 4 warnings during compilation). But now that seems to work too. 

Now, is there any other areas of the kernel where we can use different scheduler policies? IO is one, but how do you change for the "general" scheduler (the one controlling the processes)?

The only thing I cant seem to get working is the bloody framebuffer image during  bootup. Am going top go through the howto and see........

EDIT:

The anticipatory scheduler is really nice!! Seemf more "fair" than cfq on the desktop to me....

@Jake, thanks for you help.

Sawan

----------

## Bornio

Not to offend anyone, but, whatever happend to steel300?

----------

## tdb

 *Bornio wrote:*   

> Not to offend anyone, but, whatever happend to steel300?

 

He's still here. He posted in this thread on the previous page.  He's on sabbatical for a few more days.

----------

