* Fun with the mangle table + LARTC
From: Gavin Hamill @ 2005-08-01 8:16 UTC (permalink / raw)
To: netfilter
Hi - this is one of those "not sure if it's netfilter or LARTC" issues, so
here we go. I have a LAN on eth0 two Internet connections on eth1 and eth2. I
have the default route pointing at eth1 but would like HTTP requests from the
LAN to go out eth2.
When beginning, I have the following rules in the nat table.
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth1 -j MASQUERADE
-A POSTROUTING -s 10.0.0.0/255.255.255.0 -o eth2 -j MASQUERADE
and the default route is via the ISP gateway on eth1 - Hurrah - normal net
access works.
However if I now add this to the mangle table:
-A PREROUTING -i eth0 -p tcp --dport 80 -j MARK --set-mark 0x50
and populate table 0x50 (80 decimal) with:
ip rule add fwmark 80 table 43
ip route add default via 80.X.X.1 table 43
using tcpdump I can see the outgoing and reply packets on eth2 with the
correct source address (i.e. the one the ISP on eth2 gives me) set, but
tcpdump on eth0 shows only the packets from the MASQ'd host - the replies
from the Internet host are not passed through.
Of course, remove the PREROUTING rule in mangle and all is well again...
Any ideas would be warmly welcomed, this is Debian sarge, kernel 2.6.8,
iptables 1.2.11 if it makes a difference. :)
Cheers,
Gavin.
^ permalink raw reply
* Re: cg-clone failing to get cogito latest tree.
From: Komal Shah @ 2005-08-01 8:13 UTC (permalink / raw)
To: Martin Langhoff, GIT
In-Reply-To: <46a038f905073119492e521bde@mail.gmail.com>
--- Martin Langhoff <martin.langhoff@gmail.com> wrote:
> On a new machine, trying to boostrap into latest cogito, I download
> and make cogito 0.12.1, and then...
>
> $ cg-clone http://www.kernel.org/pub/scm/cogito/cogito.git cogito
> defaulting to local storage area
> 14:48:53
Please try "rsync" method too. Last week http seem to be broken. I have
tried linux-omap tree and "rsync" worked, but "http" was failing.
---Komal Shah
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
^ permalink raw reply
* Re: [PATCH] Added hook in git-receive-pack
From: Junio C Hamano @ 2005-08-01 8:14 UTC (permalink / raw)
To: Josef Weidendorfer; +Cc: git
In-Reply-To: <200508010117.41848.Josef.Weidendorfer@gmx.de>
Josef, I've committed a version that has slightly different
semantics from what you originally posted.
The differences are:
- Instead of being post-change hook, the script is run just
before each ref is updated. The script can exit with
non-zero status to tell receive-pack not to update that ref
if it wants to. This means that you should explicitly exit
with zero status if all you want to do in the hook is to send
a mail out.
- The script is called once at the very end with a single
parameter "" (i.e. $refname == ""), to signal that
receive-pack is about to finish. This is a good place to add
any "final cleanup" hook.
The latter change allowed me to remove the mandatory
update_server_info call Linus did not like and make it
optional.
-jc
^ permalink raw reply
* Have trouble picking up women? Click here.
From: Lawrence @ 2005-07-31 20:18 UTC (permalink / raw)
To: linux-serial
Millions of people do it daily to save their privacy and money
http://fashioning.myvisit2doctor.biz/?fatesxtvuyWaupacazctpanning
There is a good side to every situation.
Don't be humble, you're not that great.
TRUTHFUL, adj. Dumb and illiterate.
The gods too are fond of a joke
^ permalink raw reply
* One stop store for best levitra buy.
From: Reg @ 2005-07-31 20:18 UTC (permalink / raw)
To: linux-fsdevel
Are you ready to Rock On? Let the Man in You Rise!
http://augmented.bigmedicines.biz/?chaperonextvuycharminglyzvtgarages
Government expands to absorb revenue - and then some.
A myth is a religion in which no one any longer believes.
The golden rule is that there are no golden rules.
Being Politically Correct means always having to say you're sorry.
^ permalink raw reply
* Re: [PATCH 1/3] Add git-send-email-script - tool to send emails from git-format-patch-script
From: Matthias Urlichs @ 2005-08-01 7:59 UTC (permalink / raw)
To: git
In-Reply-To: <7vk6j6a3rh.fsf@assigned-by-dhcp.cox.net>
Hi, Junio C Hamano wrote:
> Also, I wonder if running lc() to downcase the local-part[*] is
> safe/allowed/correct
mostly/no/no.
It's unlikely to be a real-life problem, but we still shouldn't do it.
--
Matthias Urlichs | {M:U} IT Design @ m-u-it.de | smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
- -
Amusements to virtue are like breezes of air to the flame -- gentle ones will
fan it, but strong ones will put it out.
-- David Thomas
^ permalink raw reply
* Re: topology api confusion
From: Paul Mackerras @ 2005-08-01 8:10 UTC (permalink / raw)
To: akpm; +Cc: Nathan Lynch, lkml, colpatch, Anton Blanchard
In-Reply-To: <20050801050748.GB31199@krispykreme>
Anton Blanchard writes:
> Dont include asm-generic/topology.h unconditionally, we end up
> overriding all the ppc64 specific functions when NUMA is on.
>
> Signed-off-by: Anton Blanchard <anton@samba.org>
Acked-by: Paul Mackerras <paulus@samba.org>
It looks like this should go into 2.6.13.
^ permalink raw reply
* [PATCH 2.6.13-rc4] m32r: Fix local-timer event handling
From: Hirokazu Takata @ 2005-08-01 8:00 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, hitoshiy, takata
Hello,
There was a scheduling problem of the m32r SMP kernel;
A process rarely stopped and gave no responding but the other process
have been handled by the other CPU still lives, then if we did something
in the other terminal or something like that, the stopped process came back
to life and continued its operation...
(ex. LMbench: lat_sig)
In the m32r SMP kernel, a local-timer event is delivered by using
an IPI(inter processor interrupts); LOCAL_TIMER_IPI.
And a function smp_send_timer() is prepared to send the LOCAL_TIMER_IPI
from the current CPU to the other CPUs.
The funtion smp_send_timer() was placed and used in do_IRQ() in
former times (before 2.6.10-rc3-mm1 kernel), however, it was
unintentionally removed when arch/m32r/kernel/irq.c was modified to
employ the generic hardirq framework (CONFIG_GENERIC_HARDIRQ) in
my previous patch.
[PATCH 2.6.10-rc3-mm1] m32r: Use generic hardirq framework
http://www.ussg.iu.edu/hypermail/linux/kernel/0412.2/0358.html
The following patch fixes the above problem.
I hope this will be merged in 2.6.13.
Thanks,
Signed-off-by: Hitoshi Yamamoto <hitoshiy@isl.melco.co.jp>
Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
---
arch/m32r/kernel/time.c | 13 ++++---------
1 files changed, 4 insertions(+), 9 deletions(-)
Index: linux-2.6.13-rc4/arch/m32r/kernel/time.c
===================================================================
--- linux-2.6.13-rc4.orig/arch/m32r/kernel/time.c 2005-08-01 16:58:47.000000000 +0900
+++ linux-2.6.13-rc4/arch/m32r/kernel/time.c 2005-08-01 16:58:53.000000000 +0900
@@ -205,8 +205,7 @@ static long last_rtc_update = 0;
* timer_interrupt() needs to keep up the real-time clock,
* as well as call the "do_timer()" routine every clocktick
*/
-static inline void
-do_timer_interrupt(int irq, void *dev_id, struct pt_regs * regs)
+irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
#ifndef CONFIG_SMP
profile_tick(CPU_PROFILING, regs);
@@ -221,6 +220,7 @@ do_timer_interrupt(int irq, void *dev_id
* CMOS clock accordingly every ~11 minutes. Set_rtc_mmss() has to be
* called as close as possible to 500 ms before the new second starts.
*/
+ write_seqlock(&xtime_lock);
if ((time_status & STA_UNSYNC) == 0
&& xtime.tv_sec > last_rtc_update + 660
&& (xtime.tv_nsec / 1000) >= 500000 - ((unsigned)TICK_SIZE) / 2
@@ -231,6 +231,7 @@ do_timer_interrupt(int irq, void *dev_id
else /* do it again in 60 s */
last_rtc_update = xtime.tv_sec - 600;
}
+ write_sequnlock(&xtime_lock);
/* As we return to user mode fire off the other CPU schedulers..
this is basically because we don't yet share IRQ's around.
This message is rigged to be safe on the 386 - basically it's
@@ -238,14 +239,8 @@ do_timer_interrupt(int irq, void *dev_id
#ifdef CONFIG_SMP
smp_local_timer_interrupt(regs);
+ smp_send_timer();
#endif
-}
-
-irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-{
- write_seqlock(&xtime_lock);
- do_timer_interrupt(irq, NULL, regs);
- write_sequnlock(&xtime_lock);
return IRQ_HANDLED;
}
--
Hirokazu Takata <takata@linux-m32r.org>
Linux/M32R Project: http://www.linux-m32r.org/
^ permalink raw reply
* Re: The different STATES of ALSA
From: Jaroslav Kysela @ 2005-08-01 8:11 UTC (permalink / raw)
To: Hynek Hanke; +Cc: James Courtier-Dutton, alsa-devel
In-Reply-To: <20050731153812.GC13386@brailcom.cz>
On Sun, 31 Jul 2005, Hynek Hanke wrote:
> > >>> d) snd_pcm_drop and _drain
> > >Calling the function in every other state is considered an error?
> > I don't know. But in any other state, it won't actually do anything.
>
> Can someone please clarify this?
drain function can be called at any time except immediately after open
(the hardware parameters must be set)...
Jaroslav
-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project, SUSE Labs
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply
* Re: The different STATES of ALSA
From: Jaroslav Kysela @ 2005-08-01 8:09 UTC (permalink / raw)
To: James Courtier-Dutton; +Cc: Hynek Hanke, alsa-devel
In-Reply-To: <42ECEEC1.3010701@superbug.co.uk>
On Sun, 31 Jul 2005, James Courtier-Dutton wrote:
> Once the hw_params and sw_params have been set, you cannot change them. You
> have to close and then reopen the device.
It's not true. You must call snd_pcm_hw_free() before applying of new
hardware parameters. Software parameters can be changed at any time.
Jaroslav
-----
Jaroslav Kysela <perex@suse.cz>
Linux Kernel Sound Maintainer
ALSA Project, SUSE Labs
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply
* Re: IBM HDAPS, I need a tip.
From: Yani Ioannou @ 2005-08-01 8:07 UTC (permalink / raw)
To: abonilla; +Cc: Lee Revell, linux-kernel, hdaps devel, Dave Hansen,
Jan Engelhardt
In-Reply-To: <Pine.LNX.4.61.0508010844380.6353@yvahk01.tjqt.qr>
Well don't forget there is a bios 'calibration' routine that you will
see on start up (especially if you are on a moving vehicle/train).
What is this calibration used for, and does it provide calibration
information to the windows driver? Could we use it somehow to help
solve this problem?
Yani
On 8/1/05, Jan Engelhardt <jengelh@linux01.gwdg.de> wrote:
>
> >So in order to calibrate it you need a readily available source of
> >constant acceleration, preferably with a known value.
> >
> >Hint: -9.8 m/sec^2.
>
> Drop it out of the window? :)
>
>
>
> Jan Engelhardt
> --
>
^ permalink raw reply
* How do we handle multi-function devices? [was Re: [patch] ucb1x00: touchscreen cleanups]
From: Mark Underwood @ 2005-08-01 8:02 UTC (permalink / raw)
To: Richard Purdie
Cc: Russell King, Pavel Machek, Arjan Van de Ven, Christoph Hellwig,
lenz, kernel list
In-Reply-To: <1122849209.7626.16.camel@localhost.localdomain>
--- Richard Purdie <rpurdie@rpsys.net> wrote:
> On Sun, 2005-07-31 at 23:11 +0100, Mark Underwood
> wrote:
> > As this isn't the only chip of this sort (i.e. a
> > multi-function chip not on the CPU bus) maybe we
> > should store the bus driver in a common place. If
> > needed we could have a very simple bus driver
> > subsystem (this might already be in the kernel, I
> > haven't looked at the bus stuff) in which you
> register
> > a bus driver and client drivers register with the
> bus
> > driver. Just an idea :-).
>
> This was the idea with the drivers/soc suggestion
> although I think that
> name is perhaps misleading.
>
> How about drivers/mfd where mfd = Multi Functional
> Devices?
I was thinking of something like driver/bus into which
we might also be able to put the I2C and LL3 buses.
The only problem is that this might leave some parts
of the multi function chip homeless (if they can't
find a home in other subsystems).
>
> I think it would be acceptable (and in keeping with
> the other drivers
> e.g. pcmcia) to seeing the arch and platform
> specific modules with the
> main driver as long as the naming reflected it (like
> the existing mcp
> and ucb code does) i.e.:
>
> mcp-core.c
> mcp-sa1100.c
> ucb1x00-code.c
> ucb1x00-assabet.c
> ucb1x00-collie.c
Maybe, I haven't looked at pcmcia but the I2C
subsystem manages to avoid any arch dependent stuff so
couldn't we? I need to do more homework ;-), but
surely we only need a bus driver (IP block specific,
platform and arch independent), a core driver to
register busses and clients, and client drivers.
>
> If code can be separated out into subsystems, I'm
> not so sure where they
> should go though. The existing policy would suggest
> drivers/input/touchscreen and sound/xxx for these...
>
> ucb1x00-ts.c
> ucb1x00-audio.c
Yes, any function of a multi function device that can
live in a subsystem should do otherwise imagine the
mess, for example, with a chip that has a USB master
on it.
Mark
>
> Opinions/Comments?
>
> Richard
>
>
___________________________________________________________
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com
^ permalink raw reply
* Re: [Qemu-devel] Newer version of windows kqemu...
From: Filip Navara @ 2005-08-01 7:50 UTC (permalink / raw)
To: qemu-devel
In-Reply-To: <AE323E2CBA0F11488F3CE2A03697795F093FD6@MSGMMKCLM2WIN.DMN1.FMR.COM>
Ellis, Mike wrote:
>Hi there...
>
>This is probably already in the works, but just in case it hadn't been reported yet, I think the latest versions of "windows qemu" and "windows kqemu" may be out of sync.
>
>Using qemu 0.7.1-3 from:
>
> http://qemu.dad-answers.com/download/win32/
>
>and the latest kqemu I could find... 0.7.1-1
>
>
Use the KQEMU binaries in the "qemu 0.7.1-3" package or if you're
compiling KQEMU yourself for whatever reason apply the patches in the
archive (also the readme file in the archive explains the version number).
- Filip
^ permalink raw reply
* Re: Fw: sigwait() breaks when straced
From: Roland McGrath @ 2005-08-01 7:57 UTC (permalink / raw)
To: Ulrich Drepper; +Cc: Andrew Morton, linux-kernel
In-Reply-To: <a36005b50508010009453fdfb7@mail.gmail.com>
> But sigwait is not a function specified with an EINTR error number.
> As I said before, this does not mean that EINTR cannot be returned.
> But it will create havoc among programs and it causes undefined
> behavior wrt to SA_RESTART. I think it is best to not have any
> function for which EINTR is not a defined error to fail this way.
> This causes the least amount of surprises and unnecessary loops around
> the userlevel call sites.
We use the same rt_sigtimedwait system call for sigtimedwait and
sigwaitinfo, which do list EINTR for the case of a handled signal.
It's for this scenario that the system call gives EINTR in this case.
We could have libc's sigwait repeat the system call on EINTR.
Unfortunately it is already the case that stop signals cause signal
interruption of system calls when they should be restarted.
rt_sigtimedwait is no different from other system calls in this regard.
It's a general problem. There is a signal wakeup in order to process the
stop signal. The blocking system call wakes up diagnoses this with EINTR.
In the case of a handled signal, this gets to the handler setup and the
first thing that does is the SA_RESTART processing. But when the signal
instead causes a stop (for job control or ptrace) and a later resumption
without running a signal handler, no restart happens. In the case of the
sleep calls, this causes early wakeups. In other blocks it produces the
spurious EINTR returns.
Thanks,
Roland
^ permalink raw reply
* Re: git diffs
From: Matthias Urlichs @ 2005-08-01 7:55 UTC (permalink / raw)
To: git
In-Reply-To: <Pine.LNX.4.58.0507311725590.14342@g5.osdl.org>
Hi, Linus Torvalds wrote:
> git checkout -f master
> git-rev-parse master > .git/refs/heads/merge-branch
>
> #
> # Switch to it, always leaving "master" untouched
> #
> git checkout -f merge-branch
Isn't that equivalent to (but slower than)
git checkout -f -b merge-branch master
?
--
Matthias Urlichs | {M:U} IT Design @ m-u-it.de | smurf@smurf.noris.de
Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de
- -
You can tell it's going to be a rotten day when the bird singing outside your
window is a buzzard.
^ permalink raw reply
* [patch] s390: kexec fixes and improvements.
From: Martin Schwidefsky @ 2005-08-01 7:54 UTC (permalink / raw)
To: akpm, linux-kernel
From: Heiko Carstens <heiko.carstens@de.ibm.com>
Disable pseudo page fault handling before starting the new kernel and try to
use diag308 to reset the machine.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
diffstat:
arch/s390/kernel/machine_kexec.c | 7 +++++
arch/s390/kernel/relocate_kernel.S | 41 +++++++++++++++++++++++++++++++
arch/s390/kernel/relocate_kernel64.S | 45 +++++++++++++++++++++++++++++++++--
arch/s390/kernel/smp.c | 6 +++-
arch/s390/kernel/traps.c | 15 +++++++++++
5 files changed, 109 insertions(+), 5 deletions(-)
diff -urN a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c
--- a/arch/s390/kernel/machine_kexec.c 2005-07-24 17:07:34.000000000 +0200
+++ b/arch/s390/kernel/machine_kexec.c 2005-07-24 17:11:41.000000000 +0200
@@ -70,6 +70,8 @@
for (;;);
}
+extern void pfault_fini(void);
+
static void
kexec_halt_all_cpus(void *kernel_image)
{
@@ -78,6 +80,11 @@
struct kimage *image;
relocate_kernel_t data_mover;
+#ifdef CONFIG_PFAULT
+ if (MACHINE_IS_VM)
+ pfault_fini();
+#endif
+
if (atomic_compare_and_swap(-1, smp_processor_id(), &cpuid))
signal_processor(smp_processor_id(), sigp_stop);
diff -urN a/arch/s390/kernel/relocate_kernel64.S b/arch/s390/kernel/relocate_kernel64.S
--- a/arch/s390/kernel/relocate_kernel64.S 2005-07-24 17:07:34.000000000 +0200
+++ b/arch/s390/kernel/relocate_kernel64.S 2005-07-24 17:10:39.000000000 +0200
@@ -4,6 +4,7 @@
* (C) Copyright IBM Corp. 2005
*
* Author(s): Rolf Adelsberger <adelsberger@de.ibm.com>
+ * Heiko Carstens <heiko.carstens@de.ibm.com>
*
*/
@@ -26,8 +27,34 @@
relocate_kernel:
basr %r13,0 #base address
.base:
+ stnsm sys_msk-.base(%r13),0xf8 #disable DAT and IRQs
spx zero64-.base(%r13) #absolute addressing mode
- stnsm sys_msk-.base(%r13),0xf8 #disable DAT and IRQ (external)
+ stctg %c0,%c15,ctlregs-.base(%r13)
+ stmg %r0,%r15,gprregs-.base(%r13)
+ lghi %r0,3
+ sllg %r0,%r0,31
+ stg %r0,0x1d0(%r0)
+ la %r0,.back_pgm-.base(%r13)
+ stg %r0,0x1d8(%r0)
+ la %r1,load_psw-.base(%r13)
+ mvc 0(8,%r0),0(%r1)
+ la %r0,.back-.base(%r13)
+ st %r0,4(%r0)
+ oi 4(%r0),0x80
+ lghi %r0,0
+ diag %r0,%r0,0x308
+ .back:
+ lhi %r1,1 #mode 1 = esame
+ sigp %r1,%r0,0x12 #switch to esame mode
+ sam64 #switch to 64 bit addressing mode
+ basr %r13,0
+ .back_base:
+ oi have_diag308-.back_base(%r13),0x01
+ lctlg %c0,%c15,ctlregs-.back_base(%r13)
+ lmg %r0,%r15,gprregs-.back_base(%r13)
+ j .top
+ .back_pgm:
+ lmg %r0,%r15,gprregs-.base(%r13)
.top:
lghi %r7,4096 #load PAGE_SIZE in r7
lghi %r9,4096 #load PAGE_SIZE in r9
@@ -62,6 +89,10 @@
o %r3,4(%r4) #or load address into psw
st %r3,4(%r4)
mvc 0(8,%r0),0(%r4) #copy psw to absolute address 0
+ tm have_diag308-.base(%r13),0x01
+ jno .no_diag308
+ diag %r0,%r0,0x308
+ .no_diag308:
sam31 #31 bit mode
sr %r1,%r1 #erase register r1
sr %r2,%r2 #erase register r2
@@ -75,8 +106,18 @@
.long 0x00080000,0x80000000
sys_msk:
.quad 0
+ ctlregs:
+ .rept 16
+ .quad 0
+ .endr
+ gprregs:
+ .rept 16
+ .quad 0
+ .endr
+ have_diag308:
+ .byte 0
+ .align 8
relocate_kernel_end:
.globl relocate_kernel_len
relocate_kernel_len:
.quad relocate_kernel_end - relocate_kernel
-
diff -urN a/arch/s390/kernel/relocate_kernel.S b/arch/s390/kernel/relocate_kernel.S
--- a/arch/s390/kernel/relocate_kernel.S 2005-07-24 17:07:34.000000000 +0200
+++ b/arch/s390/kernel/relocate_kernel.S 2005-07-24 17:10:39.000000000 +0200
@@ -4,6 +4,7 @@
* (C) Copyright IBM Corp. 2005
*
* Author(s): Rolf Adelsberger <adelsberger@de.ibm.com>
+ * Heiko Carstens <heiko.carstens@de.ibm.com>
*
*/
@@ -25,8 +26,31 @@
relocate_kernel:
basr %r13,0 #base address
.base:
- spx zero64-.base(%r13) #absolute addressing mode
stnsm sys_msk-.base(%r13),0xf8 #disable DAT and IRQ (external)
+ spx zero64-.base(%r13) #absolute addressing mode
+ stctl %c0,%c15,ctlregs-.base(%r13)
+ stm %r0,%r15,gprregs-.base(%r13)
+ la %r1,load_psw-.base(%r13)
+ mvc 0(8,%r0),0(%r1)
+ la %r0,.back-.base(%r13)
+ st %r0,4(%r0)
+ oi 4(%r0),0x80
+ mvc 0x68(8,%r0),0(%r1)
+ la %r0,.back_pgm-.base(%r13)
+ st %r0,0x6c(%r0)
+ oi 0x6c(%r0),0x80
+ lhi %r0,0
+ diag %r0,%r0,0x308
+ .back:
+ basr %r13,0
+ .back_base:
+ oi have_diag308-.back_base(%r13),0x01
+ lctl %c0,%c15,ctlregs-.back_base(%r13)
+ lm %r0,%r15,gprregs-.back_base(%r13)
+ j .start_reloc
+ .back_pgm:
+ lm %r0,%r15,gprregs-.base(%r13)
+ .start_reloc:
lhi %r10,-1 #preparing the mask
sll %r10,12 #shift it such that it becomes 0xf000
.top:
@@ -63,6 +87,10 @@
o %r3,4(%r4) #or load address into psw
st %r3,4(%r4)
mvc 0(8,%r0),0(%r4) #copy psw to absolute address 0
+ tm have_diag308-.base(%r13),0x01
+ jno .no_diag308
+ diag %r0,%r0,0x308
+ .no_diag308:
sr %r1,%r1 #clear %r1
sr %r2,%r2 #clear %r2
sigp %r1,%r2,0x12 #set cpuid to zero
@@ -75,6 +103,17 @@
.long 0x00080000,0x80000000
sys_msk:
.quad 0
+ ctlregs:
+ .rept 16
+ .long 0
+ .endr
+ gprregs:
+ .rept 16
+ .long 0
+ .endr
+ have_diag308:
+ .byte 0
+ .align 8
relocate_kernel_end:
.globl relocate_kernel_len
relocate_kernel_len:
diff -urN a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
--- a/arch/s390/kernel/smp.c 2005-07-24 17:07:34.000000000 +0200
+++ b/arch/s390/kernel/smp.c 2005-07-24 17:10:39.000000000 +0200
@@ -537,7 +537,8 @@
#endif
#ifdef CONFIG_PFAULT
/* Enable pfault pseudo page faults on this cpu. */
- pfault_init();
+ if (MACHINE_IS_VM)
+ pfault_init();
#endif
/* Mark this cpu as online */
cpu_set(smp_processor_id(), cpu_online_map);
@@ -690,7 +691,8 @@
#ifdef CONFIG_PFAULT
/* Disable pfault pseudo page faults on this cpu. */
- pfault_fini();
+ if (MACHINE_IS_VM)
+ pfault_fini();
#endif
/* disable all external interrupts */
diff -urN a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
--- a/arch/s390/kernel/traps.c 2005-07-24 17:07:34.000000000 +0200
+++ b/arch/s390/kernel/traps.c 2005-07-24 17:23:54.000000000 +0200
@@ -29,6 +29,7 @@
#include <linux/delay.h>
#include <linux/module.h>
#include <linux/kallsyms.h>
+#include <linux/reboot.h>
#include <asm/system.h>
#include <asm/uaccess.h>
@@ -675,6 +676,19 @@
panic("Corrupt kernel stack, can't continue.");
}
+#ifndef CONFIG_ARCH_S390X
+static int
+pagex_reboot_event(struct notifier_block *this, unsigned long event, void *ptr)
+{
+ if (MACHINE_IS_VM)
+ cpcmd("SET PAGEX OFF", NULL, 0, NULL);
+ return NOTIFY_DONE;
+}
+
+static struct notifier_block pagex_reboot_notifier = {
+ .notifier_call = &pagex_reboot_event,
+};
+#endif
/* init is done in lowcore.S and head.S */
@@ -735,6 +749,7 @@
&ext_int_pfault);
#endif
#ifndef CONFIG_ARCH_S390X
+ register_reboot_notifier(&pagex_reboot_notifier);
cpcmd("SET PAGEX ON", NULL, 0, NULL);
#endif
}
^ permalink raw reply
* Re: [Patch 0/2] Update aic79xx
From: Hannes Reinecke @ 2005-08-01 7:52 UTC (permalink / raw)
To: James Bottomley; +Cc: Jens Axboe, SCSI Mailing List, Jeff Garzik
In-Reply-To: <1122737875.5055.8.camel@mulgrave>
[-- Attachment #1: Type: text/plain, Size: 1361 bytes --]
James Bottomley wrote:
> On Mon, 2005-07-25 at 10:07 +0200, Hannes Reinecke wrote:
>>But this is not the root problem.
>>
>> target5:0:10: FAST-160 WIDE SCSI 320.0 MB/s ST IU (6.25 ns, offset 127)
>>scsi5: target 10 synchronous with period = 0x8, offset =
>>0x7f(RDSTRM|DT|IU|QAS)
>>
>>So, the ppr_options (which have generated the second line) are set ok,
>>but they somehow haven't been transferred into the scsi_transport attribute.
>
> Fortunately, HP gave me a U160 AIC card at OLS, so I can now boot it up
> and see that the aic7xxx driver has the same problem. Attached is the
> fix (basically it was a single bit variable rounding error).
>
Yes, figured out that much. But there was also quite some bits and
pieces missing (RDSTRM settings eg.) so a new patch is in place.
To be applied after the other two.
target11:0:8: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 15)
scsi11: target 8 synchronous with period = 0xa, offset = 0xf
target11:0:10: FAST-160 WIDE SCSI 320.0 MB/s DT IU QAS (6.25 ns, offset
127)
scsi11: target 10 synchronous with period = 0x8, offset =
0x7f(RDSTRM|DT|IU|QAS)
Seems to have it fixed, now.
Please apply.
Cheers,
Hannes
--
Dr. Hannes Reinecke hare@suse.de
SuSE Linux Products GmbH S390 & zSeries
Maxfeldstraße 5 +49 911 74053 688
90409 Nürnberg http://www.suse.de
[-- Attachment #2: aic79xx-update-dv-parameter.patch --]
[-- Type: text/x-patch, Size: 12236 bytes --]
From: Hannes Reinecke <hare@suse.de>
Subject: Update DV parameter settings
This patch updates various scsi_transport_spi parameters with the actual
parameters used by the driver internally.
Domain Validation for all devices should now work properly.
--- linux-2.6.12/drivers/scsi/aic7xxx/aic79xx_osm.c.orig 2005-08-01 09:33:54.000000000 +0200
+++ linux-2.6.12/drivers/scsi/aic7xxx/aic79xx_osm.c 2005-08-01 09:44:54.000000000 +0200
@@ -1636,9 +1636,9 @@ ahd_send_async(struct ahd_softc *ahd, ch
spi_period(starget) = tinfo->curr.period;
spi_width(starget) = tinfo->curr.width;
spi_offset(starget) = tinfo->curr.offset;
- spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ;
- spi_qas(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_QAS_REQ;
- spi_iu(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ;
+ spi_dt(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_DT_REQ ? 1 : 0;
+ spi_qas(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_QAS_REQ ? 1 : 0;
+ spi_iu(starget) = tinfo->curr.ppr_options & MSG_EXT_PPR_IU_REQ ? 1 : 0;
spi_display_xfer_agreement(starget);
break;
}
@@ -2318,6 +2318,18 @@ done:
static void ahd_linux_exit(void);
+static void ahd_linux_set_xferflags(struct scsi_target *starget, unsigned int ppr_options, unsigned int period)
+{
+ spi_qas(starget) = (ppr_options & MSG_EXT_PPR_QAS_REQ)? 1 : 0;
+ spi_dt(starget) = (ppr_options & MSG_EXT_PPR_DT_REQ)? 1 : 0;
+ spi_iu(starget) = (ppr_options & MSG_EXT_PPR_IU_REQ) ? 1 : 0;
+ spi_rd_strm(starget) = (ppr_options & MSG_EXT_PPR_RD_STRM) ? 1 : 0;
+ spi_wr_flow(starget) = (ppr_options & MSG_EXT_PPR_WR_FLOW) ? 1 : 0;
+ spi_pcomp_en(starget) = (ppr_options & MSG_EXT_PPR_PCOMP_EN) ? 1 : 0;
+ spi_rti(starget) = (ppr_options & MSG_EXT_PPR_RTI) ? 1 : 0;
+ spi_period(starget) = period;
+}
+
static void ahd_linux_set_width(struct scsi_target *starget, int width)
{
struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
@@ -2343,9 +2355,14 @@ static void ahd_linux_set_period(struct
shost->this_id, starget->id, &tstate);
struct ahd_devinfo devinfo;
unsigned int ppr_options = tinfo->goal.ppr_options;
+ unsigned int dt;
unsigned long flags;
unsigned long offset = tinfo->goal.offset;
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: set period to %d\n", ahd_name(ahd), period);
+#endif
if (offset == 0)
offset = MAX_OFFSET;
@@ -2357,6 +2374,8 @@ static void ahd_linux_set_period(struct
ppr_options |= MSG_EXT_PPR_IU_REQ;
}
+ dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+
ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
starget->channel + 'A', ROLE_INITIATOR);
@@ -2366,7 +2385,11 @@ static void ahd_linux_set_period(struct
ppr_options &= MSG_EXT_PPR_QAS_REQ;
}
- ahd_find_syncrate(ahd, &period, &ppr_options, AHD_SYNCRATE_MAX);
+ ahd_find_syncrate(ahd, &period, &ppr_options,
+ dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ ahd_linux_set_xferflags(starget, ppr_options, period);
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, offset,
ppr_options, AHD_TRANS_GOAL, FALSE);
@@ -2385,15 +2408,24 @@ static void ahd_linux_set_offset(struct
struct ahd_devinfo devinfo;
unsigned int ppr_options = 0;
unsigned int period = 0;
+ unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
unsigned long flags;
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: set offset to %d\n", ahd_name(ahd), offset);
+#endif
+
ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
starget->channel + 'A', ROLE_INITIATOR);
if (offset != 0) {
period = tinfo->goal.period;
ppr_options = tinfo->goal.ppr_options;
- ahd_find_syncrate(ahd, &period, &ppr_options, AHD_SYNCRATE_MAX);
+ ahd_find_syncrate(ahd, &period, &ppr_options,
+ dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
}
+ ahd_linux_set_xferflags(starget, ppr_options, period);
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, offset, ppr_options,
AHD_TRANS_GOAL, FALSE);
@@ -2415,17 +2447,28 @@ static void ahd_linux_set_dt(struct scsi
unsigned int period = tinfo->goal.period;
unsigned long flags;
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s DT\n", ahd_name(ahd),
+ dt ? "enabling" : "disabling");
+#endif
if (dt) {
ppr_options |= MSG_EXT_PPR_DT_REQ;
if (period > 9)
period = 9; /* at least 12.5ns for DT */
- } else if (period <= 9)
- period = 10; /* If resetting DT, period must be >= 25ns */
-
+ } else {
+ if (period <= 9)
+ period = 10; /* If resetting DT, period must be >= 25ns */
+ /* IU is invalid without DT set */
+ ppr_options &= ~MSG_EXT_PPR_IU_REQ;
+ }
ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
starget->channel + 'A', ROLE_INITIATOR);
ahd_find_syncrate(ahd, &period, &ppr_options,
dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ ahd_linux_set_xferflags(starget, ppr_options, period);
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
ppr_options, AHD_TRANS_GOAL, FALSE);
@@ -2445,16 +2488,28 @@ static void ahd_linux_set_qas(struct scs
unsigned int ppr_options = tinfo->goal.ppr_options
& ~MSG_EXT_PPR_QAS_REQ;
unsigned int period = tinfo->goal.period;
- unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+ unsigned int dt;
unsigned long flags;
- if (qas)
- ppr_options |= MSG_EXT_PPR_QAS_REQ;
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s QAS\n", ahd_name(ahd),
+ qas ? "enabling" : "disabling");
+#endif
+
+ if (qas) {
+ ppr_options |= MSG_EXT_PPR_QAS_REQ;
+ }
+
+ dt = ppr_options & MSG_EXT_PPR_DT_REQ;
ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
starget->channel + 'A', ROLE_INITIATOR);
ahd_find_syncrate(ahd, &period, &ppr_options,
dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ spi_qas(starget) = (ppr_options & MSG_EXT_PPR_QAS_REQ)? 1 : 0;
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
ppr_options, AHD_TRANS_GOAL, FALSE);
@@ -2474,16 +2529,29 @@ static void ahd_linux_set_iu(struct scsi
unsigned int ppr_options = tinfo->goal.ppr_options
& ~MSG_EXT_PPR_IU_REQ;
unsigned int period = tinfo->goal.period;
- unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+ unsigned int dt;
unsigned long flags;
- if (iu)
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s IU\n", ahd_name(ahd),
+ iu ? "enabling" : "disabling");
+#endif
+
+ if (iu) {
ppr_options |= MSG_EXT_PPR_IU_REQ;
+ ppr_options |= MSG_EXT_PPR_DT_REQ; /* IU requires DT */
+ }
+
+ dt = ppr_options & MSG_EXT_PPR_DT_REQ;
ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
starget->channel + 'A', ROLE_INITIATOR);
ahd_find_syncrate(ahd, &period, &ppr_options,
dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ ahd_linux_set_xferflags(starget, ppr_options, period);
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
ppr_options, AHD_TRANS_GOAL, FALSE);
@@ -2506,6 +2574,12 @@ static void ahd_linux_set_rd_strm(struct
unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
unsigned long flags;
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s Read Streaming\n", ahd_name(ahd),
+ rdstrm ? "enabling" : "disabling");
+#endif
+
if (rdstrm)
ppr_options |= MSG_EXT_PPR_RD_STRM;
@@ -2513,6 +2587,131 @@ static void ahd_linux_set_rd_strm(struct
starget->channel + 'A', ROLE_INITIATOR);
ahd_find_syncrate(ahd, &period, &ppr_options,
dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ spi_rd_strm(starget) = (ppr_options & MSG_EXT_PPR_RD_STRM) ? 1 : 0;
+
+ ahd_lock(ahd, &flags);
+ ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
+ ppr_options, AHD_TRANS_GOAL, FALSE);
+ ahd_unlock(ahd, &flags);
+}
+
+static void ahd_linux_set_wr_flow(struct scsi_target *starget, int wrflow)
+{
+ struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
+ struct ahd_softc *ahd = *((struct ahd_softc **)shost->hostdata);
+ struct ahd_tmode_tstate *tstate;
+ struct ahd_initiator_tinfo *tinfo
+ = ahd_fetch_transinfo(ahd,
+ starget->channel + 'A',
+ shost->this_id, starget->id, &tstate);
+ struct ahd_devinfo devinfo;
+ unsigned int ppr_options = tinfo->goal.ppr_options
+ & ~MSG_EXT_PPR_WR_FLOW;
+ unsigned int period = tinfo->goal.period;
+ unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+ unsigned long flags;
+
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s Write Flow Control\n", ahd_name(ahd),
+ wrflow ? "enabling" : "disabling");
+#endif
+
+ if (wrflow)
+ ppr_options |= MSG_EXT_PPR_WR_FLOW;
+
+ ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
+ starget->channel + 'A', ROLE_INITIATOR);
+ ahd_find_syncrate(ahd, &period, &ppr_options,
+ dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ spi_wr_flow(starget) = (ppr_options & MSG_EXT_PPR_WR_FLOW) ? 1 : 0;
+
+ ahd_lock(ahd, &flags);
+ ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
+ ppr_options, AHD_TRANS_GOAL, FALSE);
+ ahd_unlock(ahd, &flags);
+}
+
+static void ahd_linux_set_rti(struct scsi_target *starget, int rti)
+{
+ struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
+ struct ahd_softc *ahd = *((struct ahd_softc **)shost->hostdata);
+ struct ahd_tmode_tstate *tstate;
+ struct ahd_initiator_tinfo *tinfo
+ = ahd_fetch_transinfo(ahd,
+ starget->channel + 'A',
+ shost->this_id, starget->id, &tstate);
+ struct ahd_devinfo devinfo;
+ unsigned int ppr_options = tinfo->goal.ppr_options
+ & ~MSG_EXT_PPR_RTI;
+ unsigned int period = tinfo->goal.period;
+ unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+ unsigned long flags;
+
+ if ((ahd->features & AHD_RTI) == 0) {
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: RTI not available\n", ahd_name(ahd));
+#endif
+ return;
+ }
+
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s RTI\n", ahd_name(ahd),
+ rti ? "enabling" : "disabling");
+#endif
+
+ if (rti)
+ ppr_options |= MSG_EXT_PPR_RTI;
+
+ ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
+ starget->channel + 'A', ROLE_INITIATOR);
+ ahd_find_syncrate(ahd, &period, &ppr_options,
+ dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ spi_rti(starget) = (ppr_options & MSG_EXT_PPR_RTI) ? 1 : 0;
+
+ ahd_lock(ahd, &flags);
+ ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
+ ppr_options, AHD_TRANS_GOAL, FALSE);
+ ahd_unlock(ahd, &flags);
+}
+
+static void ahd_linux_set_pcomp_en(struct scsi_target *starget, int pcomp)
+{
+ struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
+ struct ahd_softc *ahd = *((struct ahd_softc **)shost->hostdata);
+ struct ahd_tmode_tstate *tstate;
+ struct ahd_initiator_tinfo *tinfo
+ = ahd_fetch_transinfo(ahd,
+ starget->channel + 'A',
+ shost->this_id, starget->id, &tstate);
+ struct ahd_devinfo devinfo;
+ unsigned int ppr_options = tinfo->goal.ppr_options
+ & ~MSG_EXT_PPR_PCOMP_EN;
+ unsigned int period = tinfo->goal.period;
+ unsigned int dt = ppr_options & MSG_EXT_PPR_DT_REQ;
+ unsigned long flags;
+
+#ifdef AHD_DEBUG
+ if ((ahd_debug & AHD_SHOW_DV) != 0)
+ printf("%s: %s Precompensation\n", ahd_name(ahd),
+ pcomp ? "Enable" : "Disable");
+#endif
+
+ if (pcomp)
+ ppr_options |= MSG_EXT_PPR_PCOMP_EN;
+
+ ahd_compile_devinfo(&devinfo, shost->this_id, starget->id, 0,
+ starget->channel + 'A', ROLE_INITIATOR);
+ ahd_find_syncrate(ahd, &period, &ppr_options,
+ dt ? AHD_SYNCRATE_MAX : AHD_SYNCRATE_ULTRA2);
+
+ spi_pcomp_en(starget) = (ppr_options & MSG_EXT_PPR_PCOMP_EN) ? 1 : 0;
+
ahd_lock(ahd, &flags);
ahd_set_syncrate(ahd, &devinfo, period, tinfo->goal.offset,
ppr_options, AHD_TRANS_GOAL, FALSE);
@@ -2534,6 +2733,12 @@ static struct spi_function_template ahd_
.show_qas = 1,
.set_rd_strm = ahd_linux_set_rd_strm,
.show_rd_strm = 1,
+ .set_wr_flow = ahd_linux_set_wr_flow,
+ .show_wr_flow = 1,
+ .set_rti = ahd_linux_set_rti,
+ .show_rti = 1,
+ .set_pcomp_en = ahd_linux_set_pcomp_en,
+ .show_pcomp_en = 1,
};
^ permalink raw reply
* Clock resolution / RT preemption
From: greg @ 2005-08-01 7:51 UTC (permalink / raw)
To: linux-kernel
Hi folks,
I'm looking for a timer resolution lower than 1 ms (and monotonic clock
rate) destined to be used with some network code running on x86
platforms. Would you please provide me with informations about how to
get/implement this.
AFAIK, there's a "high resultion timer" patch hanging around, but
there's not much informations with regard to portability (specific
hardware requirements ?), scalability, integration with RT patches.
I understand the POSIX 1003.1b Clocks and Timers system calls are not
fully available within the linux kernel (and libc ?), am I right on that ?
One more question : I believe Ingo's preemption patch run
timers/interrupt handlers within kernel threads, how should I assign
specific priority to address my goals without compromising system
stability ?
^ permalink raw reply
* Re: CheckFS: Checkpoints and Block Level Incremental Backup (BLIB)
From: Milind Dumbare @ 2005-08-01 7:50 UTC (permalink / raw)
To: Theodore Ts'o; +Cc: ext2-devel, Linux Kernel
Hi,
The diff file generated by comparing ext3/ and
kernel/fs/checkfs/ can also be accessed from the link
http://checkfs.linsyssoft.com/temp/
I cleaned it, but still it has some unnecessary differences. I
am working on that to make it more clean and will send it to u as soon
as I finish with that.
Milind Dumbare
(www.linsyssoft.com)
^ permalink raw reply
* Re: Power consumption HZ100, HZ250, HZ1000: new numbers
From: David Weinehall @ 2005-08-01 7:44 UTC (permalink / raw)
To: Lee Revell; +Cc: Pavel Machek, James Bruce, Marc Ballarin, linux-kernel
In-Reply-To: <1122852234.13000.27.camel@mindpipe>
On Sun, Jul 31, 2005 at 07:23:54PM -0400, Lee Revell wrote:
> On Mon, 2005-08-01 at 00:47 +0200, Pavel Machek wrote:
> > I'm pretty sure at least one distro will go with HZ<300 real soon now
> > ;-).
> >
>
> Any idea what their official recommendation for people running apps that
> require the 1ms sleep resolution is? Something along the lines of "Get
> bent"?
Calm down. Any argument along the lines of the change of a default
value in the defconfig screwing people over equally applies the other
way around; by not changing the defconfig, you're screwing laptop users
(and others that want less power consumption) over. The world is not
black and white, it's a very boring gray (or a very sadening bloody
red; but I hope we won't come to that point just because of a silly
argument on lkml...)
In the end, Linus will decide this anyway. I can understand that you
don't want to change your application. Help developing the dynamic
tick patch, and maybe you won't have to =)
Regards: David Weinehall
--
/) David Weinehall <tao@acc.umu.se> /) Northern lights wander (\
// Maintainer of the v2.0 kernel // Dance across the winter sky //
\) http://www.acc.umu.se/~tao/ (/ Full colour fire (/
^ permalink raw reply
* Re: 2.6.14-rc4: dma_timer_expiry [was 2.6.13-rc2 hangs at boot]
From: Tero Roponen @ 2005-08-01 7:42 UTC (permalink / raw)
To: Ivan Kokshaysky
Cc: Andrew Morton, jonsmirl, gregkh, linux-kernel, Mikael Pettersson
In-Reply-To: <20050801112245.B9460@jurassic.park.msu.ru>
On Mon, 1 Aug 2005, Ivan Kokshaysky wrote:
> On Fri, Jul 29, 2005 at 02:39:21AM -0700, Andrew Morton wrote:
> > Tero Roponen <teanropo@cc.jyu.fi> wrote:
> > > My original report is here: http://lkml.org/lkml/2005/7/6/174
> >
> > I see. Ivan, do we know what's going on here?
>
> Sort of. The 4K cardbus windows are working fine for non-x86
> architectures where all IO resources are usually well known
> and added to the resource tree properly.
> However, on x86 there are sometimes "hidden" system IO port
> ranges that aren't reported by BIOS, so the large (4K) cardbus
> windows overlap these ranges.
>
> Actually I don't like reducing CARDBUS_IO_SIZE to 256 bytes, because
> we lose an ability to handle cards with built-in p2p bridges (which
> require 4K for IO), plus it won't fix Sony VAIO problem.
>
> Tero and Mikael, can you try this one-liner instead?
>
> Ivan.
>
> --- 2.6.13-rc4/include/asm-i386/pci.h Sun Jul 31 14:32:09 2005
> +++ linux/include/asm-i386/pci.h Mon Aug 1 08:29:18 2005
> @@ -18,7 +18,7 @@ extern unsigned int pcibios_assign_all_b
> #define pcibios_scan_all_fns(a, b) 0
>
> extern unsigned long pci_mem_start;
> -#define PCIBIOS_MIN_IO 0x1000
> +#define PCIBIOS_MIN_IO 0x2000
> #define PCIBIOS_MIN_MEM (pci_mem_start)
>
> #define PCIBIOS_MIN_CARDBUS_IO 0x4000
>
Thanks, this works for me!
I hope this will be in 2.6.13 final.
-
Tero Roponen
^ permalink raw reply
* Re: snd-usb-audio hangs modprobe if switching dv camera betw. webcam / usb mass storage mode
From: thomas schorpp @ 2005-08-01 7:37 UTC (permalink / raw)
To: alsa-devel
In-Reply-To: <42ECB0D7.4030409@gmx.de>
thomas schorpp wrote:
> thomas schorpp wrote:
>
>>hello,
>>
>>this bug is in conjunction with the older
>>"usb disconnect hangs keyboard" bug on lkml.
>>
>>module-init-tools / hotplug hangs with snd-usb-audio if i switch/remove
>>usb camera as stated above, if a client like kmix is attached.
>>(strange, since this device has no mixers here).
>>
>>if its not unavoidable, pls fix soon, thx. vanilla kernel 2.6.12.0.
>>
>>Jul 31 10:35:58 tom1 kernel: usb 1-2: USB disconnect, address 3
>>...
>>killall kmix
>>...
>>
>>Jul 31 10:42:08 tom1 kernel: usb 1-2: new full speed USB device using
>>uhci_hcd and address 4
>>Jul 31 10:42:08 tom1 kernel:
>>/usr/src/spca5xx-20050701/drivers/usb/spca5xx.c: USB SPCA5XX camera
>>found. Aiptek DV3500 Mpeg4
>>Jul 31 10:42:08 tom1 kernel:
>>/usr/src/spca5xx-20050701/drivers/usb/spca5xx.c: [spca5xx_probe:8652]
>>Camera type JPEG
>>Jul 31 10:42:08 tom1 kernel: ALSA sound/usb/usbaudio.c:2570: 4:3:1: add
>>audio endpoint 0x86
>>
>>y
>>tom
>>
>
>
> /*
> * Frees the device.
> */
> static void usX2Y_usb_disconnect(struct usb_device* device, void* ptr)
> {
> if (ptr) {
> usX2Ydev_t* usX2Y = usX2Y((snd_card_t*)ptr);
> struct list_head* p;
xxx check busy here and return "-EIBUSY" xxx ?
> usX2Y->chip.shutdown = 1;
> usX2Y->chip_status = USX2Y_STAT_CHIP_HUP;
> usX2Y_unlinkSeq(&usX2Y->AS04);
> usb_kill_urb(usX2Y->In04urb);
> snd_card_disconnect((snd_card_t*)ptr); <--- err handler? (1)
> /* release the midi resources */
> list_for_each(p, &usX2Y->chip.midi_list) {
> snd_usbmidi_disconnect(p, &snd_usX2Y_usb_driver);
> }
> if (usX2Y->us428ctls_sharedmem)
> wake_up(&usX2Y->us428ctls_wait_queue_head);
> snd_card_free((snd_card_t*)ptr); <---- hang
> }
> }
>
> /* wait, until all devices are ready for the free operation */
> wait_event(card->shutdown_sleep, card->files == NULL); <--- hang
>
PEOPLE, i know its common unix behaviour not to remove busy drivers with
files open,
but You cant just hang the whole usb-system and modprobe then with an
infinite signal wait.
the driver *must not* enter the disconnection it must signal modprobe /
hotplug to print a "busy" message and return.
y
tom
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
^ permalink raw reply
* Re: Average instruction length in x86-built kernel?
From: David Weinehall @ 2005-08-01 7:35 UTC (permalink / raw)
To: Karim Yaghmour; +Cc: Ingo Oeser, linux-kernel
In-Reply-To: <42EBDBA5.5090008@opersys.com>
On Sat, Jul 30, 2005 at 03:57:25PM -0400, Karim Yaghmour wrote:
[snip]
> # Remove non-instruction lines:
> sed /^[^c].*/d $2-dissassembled-kernel > $2-stage-1
>
> # Remove empty lines:
> sed /^'\t'*$/d $2-stage-1 > $2-stage-2
>
> # Remove function names:
> sed /^c[0-9,a-f]*' '\<.*\>:$/d $2-stage-2 > $2-stage-3
>
> # Remove addresses:
> sed s/^c[0-9,a-f]*:'\t'// $2-stage-3 > $2-stage-4
>
> # Remove instruction text:
> sed s/'\t'.*// $2-stage-4 > $2-stage-5
>
> # Remove trailing whitespace:
> sed s/'\s'*$// $2-stage-5 > $2-stage-6
Uhm, you do know that sed allows you to execute several commands after
eachother, right?
sed -e 's/foo/bar/;s/baz/omph/'
That way you should be able to save a few stages.
Also, your script is, as far as I could see, a clean sh-script;
no need for /bin/bash; use /bin/sh instead.
Regards: David Weinehall
--
/) David Weinehall <tao@acc.umu.se> /) Northern lights wander (\
// Maintainer of the v2.0 kernel // Dance across the winter sky //
\) http://www.acc.umu.se/~tao/ (/ Full colour fire (/
^ permalink raw reply
* Re: Power consumption HZ100, HZ250, HZ1000: new numbers
From: Pavel Machek @ 2005-08-01 7:28 UTC (permalink / raw)
To: Lee Revell; +Cc: James Bruce, Marc Ballarin, linux-kernel
In-Reply-To: <1122854036.13000.33.camel@mindpipe>
Hi!
> > > > I'm pretty sure at least one distro will go with HZ<300 real soon now
> > > > ;-).
> > > >
> > >
> > > Any idea what their official recommendation for people running apps that
> > > require the 1ms sleep resolution is? Something along the lines of "Get
> > > bent"?
> >
> > So you busy wait for 1msec, big deal.
>
> Which requires changing all those apps.
...which you have to do anyway for 2.4 compatibility.
Pavel
--
if you have sharp zaurus hardware you don't need... you know my address
^ permalink raw reply
* Re: Power consumption HZ100, HZ250, HZ1000: new numbers
From: Pavel Machek @ 2005-08-01 7:26 UTC (permalink / raw)
To: James Bruce, Lee Revell, Marc Ballarin, linux-kernel
In-Reply-To: <20050801034940.GC24130@mail>
Hi!
> > > If the kernel defaults are irrelevant, then it would make more sense to
> > > leave the default HZ as 1000 and not to enable the cpufreq and ACPI in
> > > order to keep with the principle of least surprise for people who do use
> > > kernel.org kernels.
> >
> > Well, I'd say you want ACPI enabled. New machine do not even boot
> > without that. Default config should be usefull; set ACPI off, and
> > you'll not be able to even power machine down.
>
> And there are older machines that won't boot with it enabled. The machine
> I'm typing this on has a really shitty ACPI implementation, I don't remember
> the details because it's been so long but I know that I have to disable ACPI
> for it to work right.
If it was long ago, you probably want to try again and file a bug
report if still broken.
Pavel
--
if you have sharp zaurus hardware you don't need... you know my address
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.