Re: The true state of lkcd?

Micah Anderson <[email protected]> Wed, 5 May 2004 18:17:03 -0500
Newsgroups gmane.linux.lkcd.general
Message-ID <[email protected]>
Hari,

I am incorporating this release into the next debian package, are
there any more 2.4 kernel patches that I can also include (2.4.24,
2.4.25 or 2.4.26)?

I hope to get the lkcdutils packaged next.

Micah

On Tue, 09 Dec 2003, Hariprasad Nellitheertha wrote:

> Hello All,
> 
> I was able to get the patches for 2.4.23 ready. I am reproducing the
> steps to get this working from yesterday's note.
> 
> 1. Download the "2.4" and "lkcdutils" code from cvs using the tag
> "linux-2423". Use the following commands to download them.
> 
> cvs -z 9 -d:pserver:[email protected]:443/cvsroot/lkcd co -P
> -r linux-2423 2.4
> 
> cvs -z 9 -d:pserver:[email protected]:443/cvsroot/lkcd co -P
> -r linux-2423 lkcdutils
> 
> 2. Copy over the 2.4 directory contents onto the linux-2.4.23 vanilla
> source tree.
> 
> 3. Apply the lkcd-2423.patch (attached with this note) to the kernel
> source tree. 
> 
> 4. Build and boot to the new kernel. You should have an lkcd enabled
> 2.4.23 kernel.
> 
> 5. The normal configure/make/make install steps will suffice for
> lkcdutils.
> 
> Kindly test this and let us know the results. 
> 
> Regards, Hari
> 
> 
> > On Thu, 2003-11-27 at 13:14, Micah Anderson wrote:
> > > And which one of these is considered stable or at least a release? It
> > > seems like 4.1-1 is the "released" lkcdutils, but if I have a 2.4.22
> > > kernel, can I apply the 2.4.21 patch and use lkcdutils 4.1-1, or can I only
> > > use 4.2? Or should I be using the 2.4.20 patch?
> > > 
> > > Thanks,
> > > micah
> > > 
> 

> diff -Naur linux-2.4.23.before/Makefile linux-2.4.23.after/Makefile
> --- linux-2.4.23.before/Makefile	2003-12-09 11:29:52.000000000 +0530
> +++ linux-2.4.23.after/Makefile	2003-12-09 11:27:49.000000000 +0530
> @@ -152,6 +152,7 @@
>  DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
>  DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
>  DRIVERS-$(CONFIG_FUSION_BOOT) += drivers/message/fusion/fusion.o
> +DRIVERS-$(CONFIG_DUMP) += drivers/dump/dumpdrv.o
>  DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o
>  
>  ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
> @@ -172,7 +173,7 @@
>  DRIVERS-$(CONFIG_PPC32) += drivers/macintosh/macintosh.o
>  DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
>  DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o
> -DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
> +#DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
>  DRIVERS-$(CONFIG_VT) += drivers/video/video.o
>  DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a
>  DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o
> diff -Naur linux-2.4.23.before/arch/i386/config.in linux-2.4.23.after/arch/i386/config.in
> --- linux-2.4.23.before/arch/i386/config.in	2003-12-09 11:29:52.000000000 +0530
> +++ linux-2.4.23.after/arch/i386/config.in	2003-12-09 11:28:34.000000000 +0530
> @@ -231,6 +231,7 @@
>        define_bool CONFIG_X86_IO_APIC y
>     fi
>  else
> +   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
>     bool 'Multi-node NUMA system support' CONFIG_X86_NUMA
>     if [ "$CONFIG_X86_NUMA" = "y" ]; then
>        #Platform Choices
> diff -Naur linux-2.4.23.before/arch/i386/kernel/irq.c linux-2.4.23.after/arch/i386/kernel/irq.c
> --- linux-2.4.23.before/arch/i386/kernel/irq.c	2003-12-09 11:32:53.000000000 +0530
> +++ linux-2.4.23.after/arch/i386/kernel/irq.c	2003-12-09 11:29:35.000000000 +0530
> @@ -1091,7 +1091,7 @@
>  
>  static struct proc_dir_entry * smp_affinity_entry [NR_IRQS];
>  
> -static unsigned long irq_affinity [NR_IRQS] = { [0 ... NR_IRQS-1] = ~0UL };
> +unsigned long irq_affinity [NR_IRQS] = { [0 ... NR_IRQS-1] = ~0UL };
>  static int irq_affinity_read_proc (char *page, char **start, off_t off,
>  			int count, int *eof, void *data)
>  {
> diff -Naur linux-2.4.23.before/drivers/Makefile linux-2.4.23.after/drivers/Makefile
> --- linux-2.4.23.before/drivers/Makefile	2003-12-09 11:29:53.000000000 +0530
> +++ linux-2.4.23.after/drivers/Makefile	2003-12-09 11:27:56.000000000 +0530
> @@ -6,7 +6,7 @@
>  #
>  
>  
> -mod-subdirs :=	dio hil mtd sbus video macintosh usb input telephony sgi ide \
> +mod-subdirs :=	dio hil mtd sbus video macintosh usb input telephony ide \
>  		message/i2o message/fusion scsi md ieee1394 pnp isdn atm \
>  		fc4 net/hamradio i2c acpi bluetooth dump
>  
> @@ -30,7 +30,7 @@
>  subdir-$(CONFIG_USB)		+= usb
>  subdir-$(CONFIG_INPUT)		+= input
>  subdir-$(CONFIG_PHONE)		+= telephony
> -subdir-$(CONFIG_SGI)		+= sgi
> +#subdir-$(CONFIG_SGI)		+= sgi
>  subdir-$(CONFIG_IDE)		+= ide
>  subdir-$(CONFIG_SCSI)		+= scsi
>  subdir-$(CONFIG_I2O)		+= message/i2o
> diff -Naur linux-2.4.23.before/include/asm-i386/smp.h linux-2.4.23.after/include/asm-i386/smp.h
> --- linux-2.4.23.before/include/asm-i386/smp.h	2002-11-29 05:23:15.000000000 +0530
> +++ linux-2.4.23.after/include/asm-i386/smp.h	2003-12-09 11:28:16.000000000 +0530
> @@ -31,7 +31,11 @@
>   
>  extern void smp_alloc_memory(void);
>  extern unsigned long phys_cpu_present_map;
> +#if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE)
> +extern volatile unsigned long cpu_online_map;
> +#else
>  extern unsigned long cpu_online_map;
> +#endif
>  extern volatile unsigned long smp_invalidate_needed;
>  extern int pic_mode;
>  extern int smp_num_siblings;
> diff -Naur linux-2.4.23.before/include/linux/mm.h linux-2.4.23.after/include/linux/mm.h
> --- linux-2.4.23.before/include/linux/mm.h	2003-12-09 11:29:53.000000000 +0530
> +++ linux-2.4.23.after/include/linux/mm.h	2003-12-09 11:29:06.000000000 +0530
> @@ -317,9 +317,11 @@
>  #define TryLockPage(page)	test_and_set_bit(PG_locked, &(page)->flags)
>  #define PageChecked(page)	test_bit(PG_checked, &(page)->flags)
>  #define SetPageChecked(page)	set_bit(PG_checked, &(page)->flags)
> +#define ClearPageChecked(page)	clear_bit(PG_checked, &(page)->flags)
>  #define PageLaunder(page)	test_bit(PG_launder, &(page)->flags)
>  #define SetPageLaunder(page)	set_bit(PG_launder, &(page)->flags)
>  #define ClearPageLaunder(page)	clear_bit(PG_launder, &(page)->flags)
> +#define ClearPageArch1(page)	clear_bit(PG_arch_1, &(page)->flags) 
>  
>  /*
>   * The zone field is never updated after free_area_init_core()
> diff -Naur linux-2.4.23.before/kernel/panic.c linux-2.4.23.after/kernel/panic.c
> --- linux-2.4.23.before/kernel/panic.c	2003-12-09 11:32:40.000000000 +0530
> +++ linux-2.4.23.after/kernel/panic.c	2003-12-09 11:29:17.000000000 +0530
> @@ -13,6 +13,9 @@
>  #include <linux/delay.h>
>  #include <linux/reboot.h>
>  #include <linux/notifier.h>
> +#if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE)
> +#include <linux/dump.h>
> +#endif
>  #include <linux/init.h>
>  #include <linux/sysrq.h>
>  #include <linux/interrupt.h>
> @@ -21,6 +24,11 @@
>  asmlinkage void sys_sync(void);	/* it's really int */
>  
>  int panic_timeout;
> +#if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE)
> +int (*dump_function_ptr)(char *, struct pt_regs *) = 0;
> +volatile int dump_in_progress = 0;
> +volatile int dumping_cpu = 0;
> +#endif
>  
>  struct notifier_block *panic_notifier_list;
>  
> @@ -52,6 +60,11 @@
>          unsigned long caller = (unsigned long) __builtin_return_address(0);
>  #endif
>  
> +#if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE)
> +        struct pt_regs regs;
> +        get_current_regs(&regs);
> +#endif
> +	
>  #ifdef CONFIG_VT
>  	disable_console_blank();
>  #endif
> @@ -70,12 +83,18 @@
>  		sys_sync();
>  	bust_spinlocks(0);
>  
> +#if !defined(CONFIG_DUMP) && !defined(CONFIG_DUMP_MODULE)
>  #ifdef CONFIG_SMP
>  	smp_send_stop();
>  #endif
> +#endif
>  
>  	notifier_call_chain(&panic_notifier_list, 0, NULL);
>  
> +#if defined(CONFIG_DUMP) || defined(CONFIG_DUMP_MODULE)
> +        dump(buf, &regs);
> +#endif
> +	
>  	if (panic_timeout > 0)
>  	{
>  		/*
> diff -Naur linux-2.4.23.before/mm/page_alloc.c linux-2.4.23.after/mm/page_alloc.c
> --- linux-2.4.23.before/mm/page_alloc.c	2003-12-09 11:32:27.000000000 +0530
> +++ linux-2.4.23.after/mm/page_alloc.c	2003-12-09 11:28:49.000000000 +0530
> @@ -89,6 +89,8 @@
>  	struct page *base;
>  	zone_t *zone;
>  
> +        ClearPageInuseOrder(page, order);       /* controlled by CONFIG_DUMP for lkcd */
> +
>  	/*
>  	 * Yes, think what happens when other parts of the kernel take 
>  	 * a reference to a page in order to pin it for io. -ben
> @@ -228,6 +230,8 @@
>  			page = expand(zone, page, index, order, curr_order, area);
>  			spin_unlock_irqrestore(&zone->lock, flags);
>  
> +                        SetPageInuseOrder(page, order); /* controlled by CONFIG_DUMP for lkcd */
> +			
>  			set_page_count(page, 1);
>  			if (BAD_RANGE(zone,page))
>  				BUG();
> @@ -287,6 +291,9 @@
>  					set_page_count(tmp, 1);
>  					page = tmp;
>  
> +                                        SetPageInuseOrder(page, order); /* controlled by CONFIG_
> +									   DUMP for lkcd */
> +										
>  					if (page->buffers)
>  						BUG();
>  					if (page->mapping)



-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to 
deliver higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3