rpms/kernel/FC-4 linux-2.6-kill-blk_attempt_merge.patch, NONE, 1.1 kernel-2.6.spec, 1.1572, 1.1573 linux-2.6-vm-debug.patch, 1.3, 1.4 linux-2.6-x86_64-ati-apic-timer.patch, 1.2, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Jan 12 20:49:56 UTC 2006


Author: davej

Update of /cvs/dist/rpms/kernel/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv16749

Modified Files:
	kernel-2.6.spec linux-2.6-vm-debug.patch 
Added Files:
	linux-2.6-kill-blk_attempt_merge.patch 
Removed Files:
	linux-2.6-x86_64-ati-apic-timer.patch 
Log Message:
- Remove broken vm debug patch.
- kill blk_attempt_merge() which was horribly broken.
- Fix booting issue on x86-64 ATI systems.



linux-2.6-kill-blk_attempt_merge.patch:
 block/ll_rw_blk.c      |   24 ------------------------
 drivers/ide/ide-cd.c   |   10 ----------
 include/linux/blkdev.h |    1 -
 3 files changed, 35 deletions(-)

--- NEW FILE linux-2.6-kill-blk_attempt_merge.patch ---

On Fri, Jan 06 2006, Dave Jones wrote:
> Looks like some nice slab poison...
> 
> 		Dave
> 
> Oops: 0000 [#1]
> last sysfs file:
> /devices/pci0000:00/0000:00:1d.7/usb1/1-0:1.0/bAlternateSettingModules linked
> in: usb_storage ata_piix libata e1000 ohci1394 ieee1394 uhci_hcdsCPU:    0
> EIP:    0060:[<c01c312e>]    Not tainted VLI
> EFLAGS: 00010002   (2.6.15-1.1819_FC5)
> EIP is at rb_next+0x9/0x22
> eax: 6b6b6b6b   ebx: dfed01f8   ecx: c01bf65a   edx: 6b6b6b6b
> esi: c1991e98   edi: 00000202   ebp: dfed403c   esp: c03c1f14
> ds: 007b   es: 007b   ss: 0068
> Process swapper (pid: 0, threadinfo=c03c1000 task=c0327ba0)
> Stack: c01bf662 c01b5dfa dfed01f8 c01b85dc c040c284 00000004 c1991e98 c023c8ab
>        c1991e98 00000000 c040c284 00000000 c023d3a4 000194d0 00000000 dfed403c
>        c1991e98 c040c284 c1991e98 00000000 c0231f2d 000194d0 00000000 000194d0
> Call Trace:
>  [<c01bf662>] cfq_latter_request+0x8/0x14     [<c01b5dfa>] elv_latter_request+07
> [<c01b85dc>] blk_attempt_remerge+0x1d/0x3c     [<c023c8ab>] cdrom_start_read+0e
> [<c023d3a4>] ide_do_rw_cdrom+0xdd/0x14a     [<c0231f2d>] start_request+0x1b1/01
> [<c023220f>] ide_do_request+0x2a0/0x2fb     [<c023265e>] ide_intr+0xf3/0x11b
>  [<c023c1a7>] cdrom_read_intr+0x0/0x2a1     [<c013632a>] handle_IRQ_event+0x23/c
> [<c01363cd>] __do_IRQ+0x7a/0xcd     [<c01054d0>] do_IRQ+0x5c/0x77
>  =======================
>  [<c0103cea>] common_interrupt+0x1a/0x20     [<c0101120>] mwait_idle+0x1a/0x2e
>  [<c01010a3>] cpu_idle+0x38/0x4d     [<c0390635>] start_kernel+0x17a/0x17c
> Code: 85 c0 74 0b 8b 50 0c 85 d2 74 04 89 d0 eb f5 c3 8b 00 85 c0 74 0b 8b 50 0

The blk_attempt_remerge() is a bad interface to be honest, and it's hard
to get to work reliably because it's done too late. I think the best
option is just to kill it, this will cause problems with other io
schedulers as well.

I've merged this up for 2.6.16-rc inclusion, probably should go to
stabel as well.

---

[PATCH] Kill blk_attempt_remerge()

It's a bad interface, and it's always done too late. Remove it.

Signed-off-by: Jens Axboe <axboe at suse.de>

--- linux-2.6.15/block/ll_rw_blk.c~	2006-01-09 11:30:20.000000000 -0500
+++ linux-2.6.15/block/ll_rw_blk.c	2006-01-09 11:30:43.000000000 -0500
@@ -2609,30 +2609,6 @@ static inline int attempt_front_merge(re
 	return 0;
 }
 
-/**
- * blk_attempt_remerge  - attempt to remerge active head with next request
- * @q:    The &request_queue_t belonging to the device
- * @rq:   The head request (usually)
- *
- * Description:
- *    For head-active devices, the queue can easily be unplugged so quickly
- *    that proper merging is not done on the front request. This may hurt
- *    performance greatly for some devices. The block layer cannot safely
- *    do merging on that first request for these queues, but the driver can
- *    call this function and make it happen any way. Only the driver knows
- *    when it is safe to do so.
- **/
-void blk_attempt_remerge(request_queue_t *q, struct request *rq)
-{
-	unsigned long flags;
-
-	spin_lock_irqsave(q->queue_lock, flags);
-	attempt_back_merge(q, rq);
-	spin_unlock_irqrestore(q->queue_lock, flags);
-}
-
-EXPORT_SYMBOL(blk_attempt_remerge);
-
 static int __make_request(request_queue_t *q, struct bio *bio)
 {
 	struct request *req;
--- linux-2.6.15/drivers/ide/ide-cd.c~	2006-01-09 11:30:50.000000000 -0500
+++ linux-2.6.15/drivers/ide/ide-cd.c	2006-01-09 11:30:55.000000000 -0500
@@ -1338,8 +1338,6 @@ static ide_startstop_t cdrom_start_read 
 	if (cdrom_read_from_buffer(drive))
 		return ide_stopped;
 
-	blk_attempt_remerge(drive->queue, rq);
-
 	/* Clear the local sector buffer. */
 	info->nsectors_buffered = 0;
 
--- linux-2.6.15/include/linux/blkdev.h~	2006-01-09 11:31:17.000000000 -0500
+++ linux-2.6.15/include/linux/blkdev.h	2006-01-09 11:31:20.000000000 -0500
@@ -559,7 +559,6 @@ extern void register_disk(struct gendisk
 extern void generic_make_request(struct bio *bio);
 extern void blk_put_request(struct request *);
 extern void blk_end_sync_rq(struct request *rq);
-extern void blk_attempt_remerge(request_queue_t *, struct request *);
 extern struct request *blk_get_request(request_queue_t *, int, gfp_t);
 extern void blk_insert_request(request_queue_t *, struct request *, int, void *);
 extern void blk_requeue_request(request_queue_t *, struct request *);
--- linux-2.6.15/drivers/ide/ide-cd.c~	2006-01-09 11:44:09.000000000 -0500
+++ linux-2.6.15/drivers/ide/ide-cd.c	2006-01-09 11:44:18.000000000 -0500
@@ -1878,14 +1878,6 @@ static ide_startstop_t cdrom_start_write
 		return ide_stopped;
 	}
 
-	/*
-	 * for dvd-ram and such media, it's a really big deal to get
-	 * big writes all the time. so scour the queue and attempt to
-	 * remerge requests, often the plugging will not have had time
-	 * to do this properly
-	 */
-	blk_attempt_remerge(drive->queue, rq);
-
 	info->nsectors_buffered = 0;
 
 	/* use dma, if possible. we don't need to check more, since we


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/kernel-2.6.spec,v
retrieving revision 1.1572
retrieving revision 1.1573
diff -u -r1.1572 -r1.1573
--- kernel-2.6.spec	9 Jan 2006 18:38:45 -0000	1.1572
+++ kernel-2.6.spec	12 Jan 2006 20:49:50 -0000	1.1573
@@ -219,7 +219,6 @@
 Patch203: linux-2.6.14-intel-cache-build.patch
 Patch204: linux-2.6-x86_64-silence-up-apic-errors.patch
 Patch205: linux-2.6-x86_64-disable-hotplug-guessing.patch
-Patch206: linux-2.6-x86_64-ati-apic-timer.patch
 
 # 300 - 399   ppc(64)
 Patch300: linux-2.6.15-default-powerpc.patch
@@ -352,6 +351,7 @@
 Patch1820: linux-2.6-net-acenic-use-after-free.patch
 Patch1830: linux-2.6-smsc-ircc2-pnp.patch
 Patch1860: linux-2.6-posix-timers-sched_time-accumulation.patch
+Patch1870: linux-2.6-kill-blk_attempt_merge.patch
 
 # Warn about usage of various obsolete functionality that may go away.
 Patch1900: linux-2.6-obsolete-idescsi-warning.patch
@@ -577,8 +577,6 @@
 %patch204 -p1
 # Disable guessing of how many hotplug cpus to add.
 %patch205 -p1
-# ATI timer quirk.
-%patch206 -p1
 
 # 
 # ppc64
@@ -791,6 +789,8 @@
 %patch1830 -p1
 # Fix posix-cpu-timers sched_time accumulation
 %patch1860 -p1
+# kill blk_attempt_merge
+%patch1870 -p1
 
 # Warn about obsolete functionality usage.
 %patch1900 -p1
@@ -1267,6 +1267,11 @@
 %endif
 
 %changelog
+* Thu Jan 12 2006 Dave Jones <davej at redhat.com>
+- Remove broken vm debug patch.
+- kill blk_attempt_merge() which was horribly broken.
+- Fix booting issue on x86-64 ATI systems.
+
 * Mon Jan  9 2006 Dave Jones <davej at redhat.com>
 - Reenable Squashfs.
 

linux-2.6-vm-debug.patch:
 rmap.c |    7 +++++++
 1 files changed, 7 insertions(+)

Index: linux-2.6-vm-debug.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-4/linux-2.6-vm-debug.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux-2.6-vm-debug.patch	6 Jan 2006 05:42:17 -0000	1.3
+++ linux-2.6-vm-debug.patch	12 Jan 2006 20:49:51 -0000	1.4
@@ -14,23 +14,4 @@
  		BUG_ON(page_mapcount(page) < 0);
  		/*
  		 * It would be tidy to reset the PageAnon mapping here,
---- linux-2.6.15/drivers/scsi/st.c~	2006-01-05 21:58:31.000000000 -0500
-+++ linux-2.6.15/drivers/scsi/st.c	2006-01-05 21:59:31.000000000 -0500
-@@ -4508,6 +4508,7 @@ static int sgl_unmap_user_pages(struct s
- 	for (i=0; i < nr_pages; i++) {
- 		struct page *page = sgl[i].page;
- 
-+		sgl[i].page = NULL;
- 		if (dirtied)
- 			SetPageDirty(page);
- 		/* FIXME: cache flush missing for rw==READ
---- linux-2.6.15/include/linux/mm.h~	2006-01-05 22:02:20.000000000 -0500
-+++ linux-2.6.15/include/linux/mm.h	2006-01-05 22:02:48.000000000 -0500
-@@ -299,6 +299,7 @@ struct page {
- #define put_page_testzero(p)				\
- 	({						\
- 		BUG_ON(page_count(p) == 0);		\
-+		BUG_ON(page_count(p) <= page_mapcount(p));	\
- 		atomic_add_negative(-1, &(p)->_count);	\
- 	})
- 
+


--- linux-2.6-x86_64-ati-apic-timer.patch DELETED ---




More information about the fedora-cvs-commits mailing list