- 13 Jan, 2005 9 commits
-
-
David S. Miller authored
do_tcp_sendpages() needs to do skb->truesize et al. accounting just like tcp_sendmsg() does. tcp_sendmsg() works by gradually adjusting these accounting knobs as user data is copied into the packet. do_tcp_sendpages() works differently, when it allocates a new SKB it optimistically adds in tp->mss_cache to these values and then makes no adjustments at all as pages are tacked onto the packet. This does not work at all if tcp_sendmsg() queues a packet onto the send queue, and then do_tcp_sendpages() attaches pages onto the end of that SKB. We are left with a very inaccurate skb->truesize in that case. Consequently, if we were building a TSO frame and it gets partially ACK'd, then since skb->truesize is too small tcp_trim_skb() will potentially underflow it's value and all the accounting becomes corrupted. This is usually seen as sk->sk_forward_alloc being negative at socket destroy time, which triggers an assertion check. Signed-off-by: David S. Miller <davem@davemloft.net>
-
David S. Miller authored
into nuts.davemloft.net:/disk1/BK/net-2.6
-
Paul Mackerras authored
This patch fixes a problem I have been seeing since all the preempt changes went in, which is that ppc64 SMP systems would livelock randomly if preempt was enabled. It turns out that what was happening was that one cpu was spinning in spin_lock_irq (the version at line 215 of kernel/spinlock.c) madly doing preempt_enable() and preempt_disable() calls. The other cpu had the lock and was trying to set the TIF_NEED_RESCHED flag for the task running on the first cpu. That is an atomic operation which has to be retried if another cpu writes to the same cacheline between the load and the store, which the other cpu was doing every time it did preempt_enable() or preempt_disable(). I decided to move the thread_info flags field into the next cache line, since it is the only field that would regularly be modified by cpus other than the one running the task that owns the thread_info. (OK possibly the `cpu' field would be on a rebalance; I don't know the rebalancing code, but that should be pretty infrequent.) Thus, moving the flags field seems like a good idea generally as well as solving the immediate problem. For the record I am pretty unhappy with the code we use for spin_lock et al. with preemption turned on (the BUILD_LOCK_OPS stuff in spinlock.c). For a start we do the atomic op (_raw_spin_trylock) each time around the loop. That is going to be generating a lot of unnecessary bus (or fabric) traffic. Instead, after we fail to get the lock we should poll it with simple loads until we see that it is clear and then retry the atomic op. Assuming a reasonable cache design, the loads won't generate any bus traffic until another cpu writes to the cacheline containing the lock. Secondly we have lost the __spin_yield call that we had on ppc64, which is an important optimization when we are running under the hypervisor. I can't just put that in cpu_relax because I need to know which (virtual) cpu is holding the lock, so that I can tell the hypervisor which virtual cpu to give my time slice to. That information is stored in the lock variable, which is why __spin_yield needs the address of the lock. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
This patch adds the PREEMPT_BKL config option for PPC64, shamelessly stolen from the i386 version. I have this turned on in the kernel on my desktop G5 and it seems to be just fine. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
This patch enables the DEBUG_PREEMPT config option for PPC64. I have this turned on on my desktop G5 and it isn't finding any problems. (It did find one problem, in flush_tlb_pending(), that I have just sent a patch for.) BTW, do we really need to restrict which architectures the config option is available on? Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
This patch mirrors the recent changes on x86 to call preempt_schedule rather than schedule in the exception exit path, in the case where the preempt_count is zero and the TIF_NEED_RESCHED bit is set. I'm a little concerned that this means that we have a window where interrupts are enabled and we are on our way into preempt_schedule, but preempt_count is still zero. Ingo's proposed preempt_schedule_irq would fix this, and I think something like that should go in. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Paul Mackerras authored
The preempt debug stuff found a place where we were using smp_processor_id() without having preemption disabled, in flush_tlb_pending. This patch fixes it by using get_cpu_var and put_cpu_var instead of the __get_cpu_var variant. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
I stumbled across this the other day. The block layer only uses a single memory pool for request allocation, so it's very possible for eg writes to have allocated them all at any point in time. If that is the case and the machine is low on memory, a reader attempting to allocate a request and failing in blk_alloc_request() can get stuck for a long time since no one is there to wake it up. The solution is either to add the extra mempool so both reads and writes have one, or attempt to handle the situation. I chose the latter, to save the extra memory required for the additional mempool with BLKDEV_MIN_RQ statically allocated requests per-queue. If a read allocation fails and we have no readers in flight for this queue, mark us rq-starved so that the next write being freed will wake up the sleeping reader(s). Same situation would happen for writes as well of course, it's just a lot more unlikely. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
"ATA over Ethernet support" should not default to 'm', it doesn't make any sense for a special case driver to do so. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
- 12 Jan, 2005 31 commits
-
-
Adam Kropelin authored
A recent trivial fixup in sys_getdents64 gives gcc-2.96 indigestion in the form of an ICE. While upgrading to a sane gcc would be the preferred solution, rewriting the change as follows eliminates the error for those who cannot do so. Signed-off-by: Adam Kropelin <akropel1@rochester.rr.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Dave Jones authored
This broke since the recent MODULE_PARAM conversion on architectures that don't have CONFIG_MTRR Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://bk.arm.linux.org.uk/linux-2.6-rmkLinus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Russell King authored
into flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-rmk
-
Nicolas Pitre authored
Patch from Nicolas Pitre This patch adds support for all alignments to both endianness. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King
-
Nicolas Pitre authored
Patch from Nicolas Pitre Now that MTD XIP support is merged this part is not relevant anymore. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King
-
Russell King authored
Signed-off-by: Russell King
-
Ben Dooks authored
Patch from Ben Dooks MAINTAINERS entries for currently supported Simtec Electronics development boards. Signed-off-by: Ben Dooks Signed-off-by: Russell King
-
Catalin Marinas authored
Patch from Catalin Marinas The patch adds the "ax" attributes to the .sched.text section to avoid a compiler warning. Signed-off-by: Catalin Marinas Signed-off-by: Russell King
-
Richard Purdie authored
Patch from Richard Purdie The Sharp SL-C7xx Series (Corgi) has 3 devices connected to the SSP interface each needing different configurations of the port. This code provides the necessary access and locking so drivers can access these components. It uses the functions provided by the PXA SSP driver to access the port. It also adds some machine specific GPIO definitions used by this code and adds some comments to existing definitions. Signed-off-by: Richard Purdie Signed-off-by: Russell King
-
Russell King authored
asm/processor.h doesn't use atomic operations nor types, so there's no need to include asm/atomic.h. Signed-off-by: Russell King <rmk@arm.linux.org.uk>
-
Russell King authored
-
http://lia64.bkbits.net/linux-ia64-release-2.6.11Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://linux-scsi.bkbits.net/scsi-for-linus-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
James Bottomley authored
From: James.Smart@Emulex.Com This patch adds 5 more FC transport host attributes in support of HBAAPI. Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
James Bottomley authored
From: James.Smart@Emulex.Com This patch deprecates the use of device_for_each_child() with stargets. The reasoning behind this is due to issues regarding: Semaphores that device_for_each_child() takes Implicit assumptions that each child is an sdev device. The patch adds a new helper function, starget_for_each_device(), and replaces all previous uses of device_for_each_child(). Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Morton authored
From: Jesse Barnes <jbarnes@engr.sgi.com> There are a few spots in qla1280.c that don't need a full PCI write flush to the device, but rather a simple write ordering guarantee. This patch changes some of the PIO reads that cause write flushes into mmiowb calls instead, which is a lighter weight way of ensuring ordering. Signed-off-by: Jeremy Higdon <jeremy@sgi.com> Signed-off-by: Jesse Barnes <jbarnes@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
Andrew Morton authored
From: Adrian Bunk <bunk@stusta.de> The patch below kills kernel 2.2 #ifdef's from the SCSI aic7xxx driver. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
-
David Mosberger authored
This is really part of the earlier changeset from David to add the new machine vector to support certain limited range DMA cards on zx1. I just forgot to run "bk new" before the commit, so the newly added files weren't checked into BK. Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
-
David Woodhouse authored
In ChangeSet 1.2370, 2005/01/11 17:41:32-08:00, tglx@linutronix.de wrote: > > [PATCH] ppc: remove duplicate define > > The MMCR0_PMXE is already defined in reg.h... Er, no it's not. But perhaps it should be...
-
Paul Mackerras authored
Ingo presumably didn't notice that ppc64 already had a functional _raw_read_trylock when he added the #define to use the generic version. This just removes the #define so we use the ppc64-specific version again. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Jens Axboe authored
Currently we only print the default io scheduler if the kernel chooses, not if the user/bootloader has specified one. This patch saves the extra line in dmesg but always notified of the default choice by appending (default) to that line: .. io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered (default) .. Patch originally from Srihari Vijayaraghavan, modified by me. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Russell King authored
into flint.arm.linux.org.uk:/usr/src/bk/linux-2.6-rmk
-
Tony Luck authored
Signed-off-by: Tony Luck <tony.luck@intel.com>
-
Jens Axboe authored
The accounting can go bad in the requeue hook, it must check the accounted flag to make sure it was previously considered in the driver. Signed-off-by: Jens Axboe <axboe@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Keith Owens authored
Signed-off-by: Keith Owens <kaos@sgi.com> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
Ivan Kokshaysky authored
This apparently explains some weird IO failures reported in last two months. Only non-bwx (including generic) kernels were affected. Acked-by: Richard Henderson <rth@twiddle.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-
bk://gkernel.bkbits.net/net-drivers-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
bk://gkernel.bkbits.net/libata-2.6Linus Torvalds authored
into ppc970.osdl.org:/home/torvalds/v2.6/linux
-
Richard Purdie authored
Patch from Richard Purdie Tidy up a couple of coding style issues in the Sharp SCOOP Driver Signed-off-by: Richard Purdie Signed-off-by: Russell King
-
Linus Torvalds authored
This enables it only for debug kernels, and also makes sure that if some external module is still broken, we don't leave the mmap-sem locked after warning about it.
-