Bug 150318

Summary: Powersave interferes with DMA on VIA C3 Nehemiah
Product: [openSUSE] SUSE LINUX 10.0 Reporter: Nigel Hathaway <nigel>
Component: BasesystemAssignee: Forgotten User ZhJd0F0L3x <forgotten_ZhJd0F0L3x>
Status: VERIFIED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Major    
Priority: P5 - None    
Version: Final   
Target Milestone: ---   
Hardware: i586   
OS: SuSE Linux 10.0   
Whiteboard:
Found By: Customer Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: VIA's version of power save module
diff between via's version and mainline

Description Nigel Hathaway 2006-02-13 09:29:16 UTC
This is a known problem on VIA EPIA boards, and VIA provide a fix on their website.

If the CPU is told to change clock frequency while a disk DMA is in operation, the DMA stalls with the hard disk light on for several seconds before the DMA times out. Meanwhile all processes requiring disk access are frozen. The system then recovers.

There has been debate amongst kernel developers as to the quality of VIA's fix (in the longhaul module) as it appears to be a hack to get round once instance of a more generic hardware shortfall.

See here for a fuller report/debate:

http://forums.viaarena.com/messageview.aspx?catid=28&threadid=68568&enterthread=y

The VIA fix is here:

http://www.viaarena.com/Guide/via%20fc2&fc3&fc4&ml10&ml10.1&ml10.2%20c3%20powersaver%20appnote%20ver0.81a.gz
Comment 1 Greg Kroah-Hartman 2006-02-16 06:03:17 UTC
And is it accepted by upstream yet?  That's the requirement for us to be
able to accept something like this.
Comment 3 Olaf Kirch 2006-02-17 12:44:05 UTC
Nigel, the mainline kernel actually has longhaul support now. Did you
verify whether it works?
Comment 4 Nigel Hathaway 2006-02-17 14:58:35 UTC
10.0 includes longhaul and, no, it doesn't work properly, which is why I reported this bug. See:

/usr/src/linux-2.6.13-15.8/arch/i386/kernel/cpu/cpufreq/longhaul.c

The necessary change is not in 2.6.15, and the VIA patch is off an earlier version than this (though they provide the source for the full module). Who needs to be informed to get it into the main kernel?
Comment 5 Olaf Kirch 2006-02-17 15:01:37 UTC
Could you please check the latest kernel for SL10.1 (available from
ftp://ftp.suse.com/pub/projects/kotd) and let us know if it works
there? Thanks!

Pavel, I'm assigning this to you
Comment 6 Pavel Machek 2006-02-18 20:14:10 UTC
I got "Service unavailable" trying to access the patch. I do not have via system at hand. What about simply disabling longhaul.c in kernel config, blacklisting it in powersave or something like that?
Comment 7 Pavel Machek 2006-02-18 20:18:45 UTC
Nigel, do you still have that patch? Could you attach it as a file?
Comment 8 Forgotten User ZhJd0F0L3x 2006-02-19 11:02:03 UTC
I can remove it from the powersave startup script if it is considered broken.
The user can still enable it if he wants to - but on his own risk.

So if you find out it is broken in 10.1 - just tell me :-)
Comment 9 Nigel Hathaway 2006-02-19 13:16:57 UTC
Created attachment 69196 [details]
VIA's version of power save module
Comment 10 Pavel Machek 2006-02-20 13:55:49 UTC
...and diff against recent mainline.

No, this does not look too good. VIA should just work with DaveJ to fix this. For now... Stefan, please remove longhaul support from powersave script.
Comment 11 Pavel Machek 2006-02-20 13:56:22 UTC
Created attachment 69318 [details]
diff between via's version and mainline
Comment 12 Forgotten User ZhJd0F0L3x 2006-02-20 16:15:02 UTC
(In reply to comment #10)

> For now... Stefan, please remove longhaul support from powersave script.

Done for 10.1
Comment 13 Forgotten User ZhJd0F0L3x 2006-03-14 10:11:01 UTC
so this is fixed for 10.1, and for 10.0 the workaround is simply to put
CPUFREQD_MODULE="off" into /etc/sysconfig/powersave/cpufreq.