Re: Compiling 2.4.1: undefined reference to `__buggy_fxsr_alignment'

2001-01-31 Thread Matt Yourst

I used regular gcc 2.95.2 and it compiled and linked without problems.
Thanks.

Shawn Starr wrote:
> 
> pgcc borks 2.4.1 kernel and prereleases (sadly I found this out the same
> way).
> 
> Shawn.
> Matt Yourst wrote:
> 
> > Hi,
> >
> > I just tried to compile 2.4.1 and I'm getting the error "undefined
> > reference to `__buggy_fxsr_alignment'" when trying to do the final
> > link. It looks like this check was something 2.4.1 added to
> > include/asm-i386/bugs.h to fail the kernel build if part of the thread
> > structure wasn't aligned on a 16-byte boundary (which seems to make
> > sense given FXSR's alignment requirements.) When was this check added?
> > I assumed it was a bug in 2.4.0 that was just recently discovered, but
> > I didn't see anything in the ChangeLog to that effect.
>...

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02139
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Compiling 2.4.1: undefined reference to `__buggy_fxsr_alignment'

2001-01-31 Thread Matt Yourst

Hi,

I just tried to compile 2.4.1 and I'm getting the error "undefined
reference to `__buggy_fxsr_alignment'" when trying to do the final
link. It looks like this check was something 2.4.1 added to
include/asm-i386/bugs.h to fail the kernel build if part of the thread
structure wasn't aligned on a 16-byte boundary (which seems to make
sense given FXSR's alignment requirements.) When was this check added?
I assumed it was a bug in 2.4.0 that was just recently discovered, but
I didn't see anything in the ChangeLog to that effect.

The problem is that I don't know how to fix it (at least not reliably
and cleanly.) I tried rearranging the fields in the task structure,
but the alignment still wasn't right. I did apply a few non-standard
patches that expanded the task structure, but the additional fields
came well after the task's struct thread (which was causing the
alignment problem.) FYI, I'm compiling with pgcc 2.95.2 and linking
with binutils/ld 2.10 (I've used both of these successfully for
countless kernel compiles before this.)

Anyone else had this problem?

- Matt Yourst

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02139
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Compiling 2.4.1: undefined reference to `__buggy_fxsr_alignment'

2001-01-31 Thread Matt Yourst

Hi,

I just tried to compile 2.4.1 and I'm getting the error "undefined
reference to `__buggy_fxsr_alignment'" when trying to do the final
link. It looks like this check was something 2.4.1 added to
include/asm-i386/bugs.h to fail the kernel build if part of the thread
structure wasn't aligned on a 16-byte boundary (which seems to make
sense given FXSR's alignment requirements.) When was this check added?
I assumed it was a bug in 2.4.0 that was just recently discovered, but
I didn't see anything in the ChangeLog to that effect.

The problem is that I don't know how to fix it (at least not reliably
and cleanly.) I tried rearranging the fields in the task structure,
but the alignment still wasn't right. I did apply a few non-standard
patches that expanded the task structure, but the additional fields
came well after the task's struct thread (which was causing the
alignment problem.) FYI, I'm compiling with pgcc 2.95.2 and linking
with binutils/ld 2.10 (I've used both of these successfully for
countless kernel compiles before this.)

Anyone else had this problem?

- Matt Yourst

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02139
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Compiling 2.4.1: undefined reference to `__buggy_fxsr_alignment'

2001-01-31 Thread Matt Yourst

I used regular gcc 2.95.2 and it compiled and linked without problems.
Thanks.

Shawn Starr wrote:
 
 pgcc borks 2.4.1 kernel and prereleases (sadly I found this out the same
 way).
 
 Shawn.
 Matt Yourst wrote:
 
  Hi,
 
  I just tried to compile 2.4.1 and I'm getting the error "undefined
  reference to `__buggy_fxsr_alignment'" when trying to do the final
  link. It looks like this check was something 2.4.1 added to
  include/asm-i386/bugs.h to fail the kernel build if part of the thread
  structure wasn't aligned on a 16-byte boundary (which seems to make
  sense given FXSR's alignment requirements.) When was this check added?
  I assumed it was a bug in 2.4.0 that was just recently discovered, but
  I didn't see anything in the ChangeLog to that effect.
...

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02139
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: / on ramfs, possible? [yes! - patch included]

2000-10-30 Thread Matt Yourst

Hi,

I read your post and I think I have just what you're looking for. I've
attached a patch that allows you to mount root as ramfs and populate
it directly from a tar archive (specified just like an initrd image,
but without having to deal with a fixed-size initrd or pivot_root at
all.) This was based on some earlier work from the Linux router
project that I rewrote and ported to 2.2 and 2.4 a few months ago. I
didn't post it to the list since I figured it was too late for 2.4.0,
but if you're interested, here it is.

Here's the Configure.help description:

CONFIG_RAMFS_ROOT
  Allow the kernel to mount a ramfs namespace as the root filesystem
  or as a pre-root filesystem for running a /linuxrc script (similar
  to how initial RAM disk (initrd) support works.)
 
  Since ramfs has no physical or virtual block device to provide its
  data as an initrd image would, you must provide a standard tar
format
  archive to be extracted into the empty ramfs root filesystem.
Currently
  this tar archive may *not* be compressed (i.e., tar.gz style); if
  compression is desired, use a bootloader with automatic gunzip
support
  such as GRUB.
 
  To specify the tar archive used to build the root filesystem, use
the
  initrd= kernel command line option (except with a tar
archive
  instead of a real ext2/minix/romfs filesystem image.)
 
  To mount the tar archive as the actual root filesystem, specify the
  same initrd= option above and also include
"root=/dev/ramfs"
  in the kernel command line.
 
  You may enable both this option and initrd support; however, if a
  tar archive is detected instead of an initrd-supported filesystem
  image, this option will override initrd support.
 
  Note: Some versions of GNU tar create invalid archives that cannot
  be extracted by the kernel. In particular, tar may add a file to an
  archive without previously adding its containing directory. If your
  ramfs archive does not mount correctly because of this, try creating
  it in another way or with another file order.

(Patch should apply to 2.4.0-test10-pre6 on i386. It needs to be
updated for other architectures, mostly in setup.c though.) 

I hope this is helpful. Maybe the maintainers would like to comment on
this too (i.e., might it be considered for 2.4.1, etc.?)

- Matt Yourst

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
 linux-ramfs-tar-root.diff


Re: / on ramfs, possible? [yes! - patch included]

2000-10-30 Thread Matt Yourst

Hi,

I read your post and I think I have just what you're looking for. I've
attached a patch that allows you to mount root as ramfs and populate
it directly from a tar archive (specified just like an initrd image,
but without having to deal with a fixed-size initrd or pivot_root at
all.) This was based on some earlier work from the Linux router
project that I rewrote and ported to 2.2 and 2.4 a few months ago. I
didn't post it to the list since I figured it was too late for 2.4.0,
but if you're interested, here it is.

Here's the Configure.help description:

CONFIG_RAMFS_ROOT
  Allow the kernel to mount a ramfs namespace as the root filesystem
  or as a pre-root filesystem for running a /linuxrc script (similar
  to how initial RAM disk (initrd) support works.)
 
  Since ramfs has no physical or virtual block device to provide its
  data as an initrd image would, you must provide a standard tar
format
  archive to be extracted into the empty ramfs root filesystem.
Currently
  this tar archive may *not* be compressed (i.e., tar.gz style); if
  compression is desired, use a bootloader with automatic gunzip
support
  such as GRUB.
 
  To specify the tar archive used to build the root filesystem, use
the
  initrd=filename kernel command line option (except with a tar
archive
  instead of a real ext2/minix/romfs filesystem image.)
 
  To mount the tar archive as the actual root filesystem, specify the
  same initrd=filename option above and also include
"root=/dev/ramfs"
  in the kernel command line.
 
  You may enable both this option and initrd support; however, if a
  tar archive is detected instead of an initrd-supported filesystem
  image, this option will override initrd support.
 
  Note: Some versions of GNU tar create invalid archives that cannot
  be extracted by the kernel. In particular, tar may add a file to an
  archive without previously adding its containing directory. If your
  ramfs archive does not mount correctly because of this, try creating
  it in another way or with another file order.

(Patch should apply to 2.4.0-test10-pre6 on i386. It needs to be
updated for other architectures, mostly in setup.c though.) 

I hope this is helpful. Maybe the maintainers would like to comment on
this too (i.e., might it be considered for 2.4.1, etc.?)

- Matt Yourst

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
 linux-ramfs-tar-root.diff


[BUG] 2.4.0-test10-pre4: kernel BUG at vmscan.c:102!

2000-10-19 Thread Matt Yourst

The following bug was just logged for 2.4.0-test10-pre4.

The machine was recompiling glibc (off a ReiserFS 3.6.18 filesystem)
and X was just running a screensaver at the time this happened. X was
locked up and I couldn't switch to a console, so I killed it with
Alt+SysRq. I was then able to get a task list with Alt+SysRq and cc1
was in the D state (along with kswapd in the Z state.) At this point I
synced and rebooted.

Oct 19 17:52:26 argentium kernel: kernel BUG at vmscan.c:102! 
Oct 19 17:52:26 argentium kernel: invalid operand:  
Oct 19 17:52:26 argentium kernel: CPU:0 
Oct 19 17:52:26 argentium kernel: EIP:   
0010:[try_to_swap_out+250/848] 
Oct 19 17:52:26 argentium kernel: EFLAGS: 00010282 
Oct 19 17:52:26 argentium kernel: eax: 001c   ebx: 0100   ecx:
c12ea000   edx:  
Oct 19 17:52:26 argentium kernel: esi: c11c6858   edi: 0001   ebp:
06af2045   esp: c12ebee4 
Oct 19 17:52:26 argentium kernel: ds: 0018   es: 0018   ss: 0018 
Oct 19 17:52:26 argentium kernel: Process kswapd (pid: 2,
stackpage=c12eb000) 
Oct 19 17:52:26 argentium kernel: Stack: c01f42c5 c01f4484 0066
0809 0808e000 c6af0234 0808a000 0809  
Oct 19 17:52:26 argentium kernel:c012bc03 c1314c60 c6a4b4a0
0808d000 c6af0234 0004 0808a000 c6a4b4a0  
Oct 19 17:52:26 argentium kernel:c1314c60  0848a000
c6af3080 0809 0809 c6af3080 c012be10  
Oct 19 17:52:26 argentium kernel: Call Trace: [tvecs+6653/33176]
[tvecs+7100/33176] [swap_out_vma+323/480] [swap_out+368/496]
[refill_inactive+272/544] [do_try_to_free_pages+153/192]
[kswapd+183/432]  
Oct 19 17:52:26 argentium kernel:[kernel_thread+36/48]  
Oct 19 17:52:26 argentium kernel: Code: 0f 0b 83 c4 0c 90 f7 c5 02 00
00 00 74 18 6a 68 68 84 44 1f  
Oct 19 17:56:07 argentium kernel: SysRq: Emergency Sync 
Oct 19 17:56:08 argentium kernel: Syncing device 03:06 ... OK 
Oct 19 17:56:08 argentium kernel: Syncing device 03:07 ... OK 
Oct 19 17:56:08 argentium kernel: Syncing device 03:01 ... OK 
Oct 19 17:56:08 argentium kernel: Done. 
Oct 19 17:56:11 argentium kernel: SysRq: Show State 
Oct 19 17:56:11 argentium kernel:  
Oct 19 17:56:11 argentium kernel:   task PCstack   pid
father child younger older 
Oct 19 17:56:11 argentium kernel: init  S C1229F2C  3076
1  0   740  (NOTLB) 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kswapdZ C021ED40  5940
2  1(L-TLB)   3 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kreclaimd  S 0286  6648
3  1(L-TLB)   4 2 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kflushd   S   5796
4  1(L-TLB)   5 3 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kupdate   S C12E5FC4  6052
5  1(L-TLB)   6 4 
Oct 19 17:56:11 argentium kernel:sig: 0 
fff9 : X 
Oct 19 17:56:11 argentium kernel: kreiserfsd  S C132DFC0  5820
6  1(L-TLB)  15 5 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
...

FYI, mm/vmscan.c:
if (PageSwapCache(page)) {
entry.val = page->index;
swap_duplicate(entry);
if (pte_dirty(pte))
>   BUG();
if (pte_write(pte))
BUG();
set_pte(page_table, swp_entry_to_pte(entry));
drop_pte:
UnlockPage(page);
mm->rss--;

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



[BUG] 2.4.0-test10-pre4: kernel BUG at vmscan.c:102!

2000-10-19 Thread Matt Yourst

The following bug was just logged for 2.4.0-test10-pre4.

The machine was recompiling glibc (off a ReiserFS 3.6.18 filesystem)
and X was just running a screensaver at the time this happened. X was
locked up and I couldn't switch to a console, so I killed it with
Alt+SysRq. I was then able to get a task list with Alt+SysRq and cc1
was in the D state (along with kswapd in the Z state.) At this point I
synced and rebooted.

Oct 19 17:52:26 argentium kernel: kernel BUG at vmscan.c:102! 
Oct 19 17:52:26 argentium kernel: invalid operand:  
Oct 19 17:52:26 argentium kernel: CPU:0 
Oct 19 17:52:26 argentium kernel: EIP:   
0010:[try_to_swap_out+250/848] 
Oct 19 17:52:26 argentium kernel: EFLAGS: 00010282 
Oct 19 17:52:26 argentium kernel: eax: 001c   ebx: 0100   ecx:
c12ea000   edx:  
Oct 19 17:52:26 argentium kernel: esi: c11c6858   edi: 0001   ebp:
06af2045   esp: c12ebee4 
Oct 19 17:52:26 argentium kernel: ds: 0018   es: 0018   ss: 0018 
Oct 19 17:52:26 argentium kernel: Process kswapd (pid: 2,
stackpage=c12eb000) 
Oct 19 17:52:26 argentium kernel: Stack: c01f42c5 c01f4484 0066
0809 0808e000 c6af0234 0808a000 0809  
Oct 19 17:52:26 argentium kernel:c012bc03 c1314c60 c6a4b4a0
0808d000 c6af0234 0004 0808a000 c6a4b4a0  
Oct 19 17:52:26 argentium kernel:c1314c60  0848a000
c6af3080 0809 0809 c6af3080 c012be10  
Oct 19 17:52:26 argentium kernel: Call Trace: [tvecs+6653/33176]
[tvecs+7100/33176] [swap_out_vma+323/480] [swap_out+368/496]
[refill_inactive+272/544] [do_try_to_free_pages+153/192]
[kswapd+183/432]  
Oct 19 17:52:26 argentium kernel:[kernel_thread+36/48]  
Oct 19 17:52:26 argentium kernel: Code: 0f 0b 83 c4 0c 90 f7 c5 02 00
00 00 74 18 6a 68 68 84 44 1f  
Oct 19 17:56:07 argentium kernel: SysRq: Emergency Sync 
Oct 19 17:56:08 argentium kernel: Syncing device 03:06 ... OK 
Oct 19 17:56:08 argentium kernel: Syncing device 03:07 ... OK 
Oct 19 17:56:08 argentium kernel: Syncing device 03:01 ... OK 
Oct 19 17:56:08 argentium kernel: Done. 
Oct 19 17:56:11 argentium kernel: SysRq: Show State 
Oct 19 17:56:11 argentium kernel:  
Oct 19 17:56:11 argentium kernel:   task PCstack   pid
father child younger older 
Oct 19 17:56:11 argentium kernel: init  S C1229F2C  3076
1  0   740  (NOTLB) 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kswapdZ C021ED40  5940
2  1(L-TLB)   3 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kreclaimd  S 0286  6648
3  1(L-TLB)   4 2 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kflushd   S   5796
4  1(L-TLB)   5 3 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
Oct 19 17:56:11 argentium kernel: kupdate   S C12E5FC4  6052
5  1(L-TLB)   6 4 
Oct 19 17:56:11 argentium kernel:sig: 0 
fff9 : X 
Oct 19 17:56:11 argentium kernel: kreiserfsd  S C132DFC0  5820
6  1(L-TLB)  15 5 
Oct 19 17:56:11 argentium kernel:sig: 0 
 : X 
...

FYI, mm/vmscan.c:
if (PageSwapCache(page)) {
entry.val = page-index;
swap_duplicate(entry);
if (pte_dirty(pte))
   BUG();
if (pte_write(pte))
BUG();
set_pte(page_table, swp_entry_to_pte(entry));
drop_pte:
UnlockPage(page);
mm-rss--;

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Getting past the 16-bit dev_t limitation.

2000-09-14 Thread Matt Yourst

>
>I am working on a project that is going to find the current limit of 
>16-bits for device numbers to be a pain. While looking around in the 
>linux-kernel archive, ...
>
This is the whole reason Linux 2.4 uses devfs (device filesystem) -
there is no need to use device numbers; you just register the name in
the /dev/whatever namespace and it's done. (The kernel will assign a
unique old-style 16-bit number for compatibility purposes as needed.)
See linux/Documentation/filesystems/devfs/README for the full story.

- Matt Yourst
 
-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



Re: Getting past the 16-bit dev_t limitation.

2000-09-14 Thread Matt Yourst


I am working on a project that is going to find the current limit of 
16-bits for device numbers to be a pain. While looking around in the 
linux-kernel archive, ...

This is the whole reason Linux 2.4 uses devfs (device filesystem) -
there is no need to use device numbers; you just register the name in
the /dev/whatever namespace and it's done. (The kernel will assign a
unique old-style 16-bit number for compatibility purposes as needed.)
See linux/Documentation/filesystems/devfs/README for the full story.

- Matt Yourst
 
-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/



2.4.0-test7 doesn't boot on Fujitsu Lifebook 765DX

2000-09-01 Thread Matt Yourst

It looks like 2.4.0-test7 won't boot on a Fujitsu Lifebook 765DX. The
kernel immediately hard reboots very early in the setup phase, before
it even displays the Uncompressing Linux message (or so it looks.)

The machine's relevant specs:

Fujitsu Lifebook 765DX
Pentium MMX 133 MHz
48 MB of RAM (up from the standard 32 MB)

The kernel was compiled for a generic 586 (the actual CPU is a Pentium
MMX 133) with gcc 2.95.2, with all CPU-specific extras disabled. NFS
root support, initrd, romfs and ramfs were compiled into the bzImage;
everything else was modular (and never loaded.) The boot loader was
grub 0.5.96, with both the kernel and initrd loaded off a floppy. I
even tried explicitly specifying mem=48M since I've heard the BIOS has
bugs on some Fujitsu laptops.

Note that the diskette boots perfectly on my Dell Inspiron and several
other machines with at least a Pentium CPU, so it must be something
with this specific machine. I have not tried 2.2.x series kernels, but
since the machine is someone else's, I don't have unlimited access to
experiment with it.

Any ideas? Thanks.

-
 Matt T. YourstMassachusetts Institute of Technology
 [EMAIL PROTECTED] 617.225.7690
 513 French House - 476 Memorial Drive - Cambridge, MA 02136
-
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/