From: Richard B. <rb...@us...> - 2001-11-14 22:57:38
|
Update of /cvsroot/linux-vax/www/htdocs In directory usw-pr-cvs1:/tmp/cvs-serv582 Modified Files: todoframe.html Log Message: Reformat page and add KA48 to list of CPUs to support Index: todoframe.html =================================================================== RCS file: /cvsroot/linux-vax/www/htdocs/todoframe.html,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- todoframe.html 2001/10/09 22:44:44 1.1 +++ todoframe.html 2001/11/14 22:57:34 1.2 @@ -1,121 +1,185 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="GENERATOR" content="Mozilla/4.75 [en] (X11; U; Linux 2.4.4 i586) [Netscape]"> +<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> +<title>To Do List</title> </head> -<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#009900" VLINK="#990032" ALINK="#6F7463" FONT FACE="Helvetica"> -<FONT FACE="Helvetica, Arial"><FONT SIZE=+1> +<body> -<h1> -Kernel</h1> +<h1><u><span style='color:red'>Kernel</span></u></h1> -<p><br>When we get an arithmetic fault of types 8,9,10. The PC is backed -up to point at the instruction causing the fault. If we just send a SIGFPE -and return, and there is no SIGFPE hander, the program goes into an infinite -loop with the arith_fault handler, and the faulting instr. Should we a) -try and advance PC, or b) send it a signal that kills it? -<p>Swapon to a file would be useful. -<p>Implement RT signals, Siginfo (arch/vax/kernel/signal.c) -<p>Occasionally processes will go into an infinite loop (configure --target=vax-dec-linux -for zlib is one) that refuses to respond to signals - ctrl z, c, \. We -need to do_signal somewhere where we are not, or there is something missing -from the console driver. -<p>Machine check implementations (arch/vax/kernel/cpu_xxx.x) -<p>Condense the three pages/task we use for pgd and pmd into one page. -(arch/vax/mm/pgalloc.c) Guard page to catch overruns and underruns at the -boundary between P0 and P1 ptes. -<p>Guard page in processes task_struct to catch kernel stack overflow. -<p>Implement interrupt stats in /proc/interrupts (arch/vax/kernel/interrupt.c) -<p>Clean up the definitions of mk_pte in pagelet_pte.h, make sure the early -code and iomap are using it correctly. (Andy Phillips) -<p>Track latest linus tree. -<p>Write a flush_tlb_8 that flushes a set of pagelet hwptes and use where -needed in place of current flush_tlb_all()'s. -<p>Write a translation-not-valid fault hander that doesnt lock up the machine -or lock up a process in a deadlock at the capture of the mm semaphore if -we are in the middle of an existing access violation or translation invalid -mmfault. (e.g. Bad S0 pte in the middle of a user page fault) (arch/vax/mm/fault.c) -<p>Save/Set up the RPB properly so we can restart if needed. -<p>Make sure we keep the VMB/PROM bitmap safe from the memory allocator. -Use the information in the prom bitmap to feed information about bad pages -to the bootmem allocator. -<p>Replace CONFIG_VAX_4000HC with something else.... Currently its more -like CONFIG_HARDCODE_INTERRUPT_NUMBERS anyway, and we need to remove the -is_ka46() rubbish. This is what machine vectors are for... -<p>Implement system call trace pathway (arch/vax/kernel/entry.S, syscall.c) -<p>Implement ptrace and profiling processes etc... -<p>Read/Write system clock routines. -<p>Systems with full hardware clock implementations (KA55) need correct -handling of ticks. -<p>Implement DMA routines for vsbus systems. KA46 has a stub that could -be more intelligent. -<p>Implement missing SCB fault vectors (floating point, reserved addressing -mode etc) in place of the stubs. -<p>Arithmetic needs attention to do a proper job on SIGFPE - returning -info etc... -<p>Occasionally, parent processes dont get woken up, when their child exits, -and we end up in the idle loop. -<p>Coredump problem sizeof(elf_gregset_t) (64) != sizeof(struct pt_regs) -(68) -<p>The KA46 needs code to turn the Floating Point unit on at boot. -<br> -<h1> -Drivers</h1> - -<p><br>Occasional Misdetection of console and network interrupt vectors. -<p>Improve ka43_diagmem handling in lance driver. (parity control bit and -memory over 16mb). -<p>SGEC network card driver (Richard Banks) -<p>vax-5380 driver is snail like slow, and occasionally locks up under -heavy swapping. -<p>Need a NCR53x9x driver for the 4000/60. There is a chipset driver in -drivers/scsi/ and several example templates. The sun3 one looks good. -<p>Lance driver doesnt work on KA46. It gets to init the card, and dies -with a memory error (csr=8881). The KA46 DMA region/registers need -sorting properly. -<p>If we halt using the usual method (/sbin/halt) the console stops accepting -input. On halt how should the dz console be setup? -<p>Sometimes, we get null characters fed to a shell, when one of its children -exits. This can be interpreted as EOF, and the shell will exit unless ignoreeof -is set. (Seen on tcsh, and bash (although bash had other problems)) -<br> -<h1> -GCC</h1> - -<p><br>Update to gcc 3.0 when glibc can compile with it. -<p>Can't compile natively without REAL_ARITHMETIC defined, why not? If -we do, constant doubles are stored with the wrong bit pattern, and generate -reserved operand faults. e.g. compile + run "make". Debug native compiler -build. -<br> -<h1> -GLIBC</h1> - -<p><br>Start port. (Dave Airlie) -<br> -<h1> -uClibc</h1> - -<p><br>Assembler error messages compiling des.c -<br> /tmp/ccX7jORA.s: Assembler messages: -<br> /tmp/ccX7jORA.s:1231: Warning: Ignoring statement -due to "Bad operand" -<br> /tmp/ccX7jORA.s:1231: Warning: Ignoring statement -because "a register has no address" -<br> -<h1> -Bootloader</h1> - -<p><br>Generic Bootloader. asbl handles basic scsi boot on KA42/KA43... -<br> -<h1> -Miscellaneous</h1> - -<p><br>Update mopd to use new packet filter API. -<p>Dynamic libraries. -<p> +<h2><span style='color:blue'>Signals/Error Handling</span></h2> +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Arithmetic Fault Handling</span></h3> + +<ul style='margin-top:0cm' type=disc> + <li>When we get an arithmetic fault of types 8,9,10. The PC is backed up to point + at the instruction causing the fault. If we just send a SIGFPE and return, + and there is no SIGFPE hander, the program goes into an infinite loop with + the arith_fault handler, and the faulting instr. Should we a) try and + advance PC, or b) send it a signal that kills it?</li> + <li>Arithmetic needs attention to do a proper job on SIGFPE returning info etc...</li> +</ul> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Machine check</span></h3> + +<p style='margin-left:18.0pt'>Implement Machine check handling (arch/vax/kernel/cpu_xxx.x)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Signals Implementation</span></h3> + +<p style='margin-left:18.0pt'>Implement RT signals, Siginfo (arch/vax/kernel/signal.c)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Kernel Stack Overflow</span></h3> + +<p style='margin-left:18.0pt'>Guard page in processes task_struct to catch kernel stack overflow.</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>System Control Block Faults</span></h3> + +<p style='margin-left:18.0pt'>Implement missing SCB fault vectors (floating point, reserved addressing mode etc) in place of the stubs.</p> + +<h2><span style='color:blue'>Interrupts</span></h2> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Interrupt Stats</span></h3> + +<p style='margin-left:18.0pt'>Implement interrupt stats in /proc/interrupts (arch/vax/kernel/interrupt.c)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Machine Interrupt Vectors</span></h3> + +<p style='margin-left:18.0pt'>Replace CONFIG_VAX_4000HC with something else.... Currently its more like CONFIG_HARDCODE_INTERRUPT_NUMBERS anyway, and we need to remove the is_ka46() rubbish. This is what machine vectors are for...</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Interrupt Detection</span></h3> + +<p style='margin-left:18.0pt'>Occasional Misdetection of console and network interrupt vectors.</p> + +<h2><span style='color:blue'>Memory management<o:p></o:p></span></h2> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Page consolidation</span></h3> + +<p class=MsoNormal style='margin-left:18.0pt'>Condense the three pages/task we use for pgd and pmd into one page. (arch/vax/mm/pgalloc.c) Guard page to catch overruns and underruns at the boundary between P0 and P1 ptes.</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Code Cleanup</span></h3> + +<p class=MsoNormal style='margin-left:18.0pt'>Clean up the definitions of mk_pte in pagelet_pte.h, make sure the early code and iomap are using it correctly. (Andy Phillips)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Flush code</span></h3> + +<p style='margin-left:18.0pt'>Write a flush_tlb_8 that flushes a set of pagelet hwptes and use where needed in place of current flush_tlb_all()'s.</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Translation not valid handler</span></h3> + +<p style='margin-left:18.0pt'>Write a translation-not-valid fault hander that doesnt lock up the machine or lock up a process in a deadlock at the capture of the mm semaphore if we are in the middle of an existing +access violation or translation invalid mmfault. (e.g. Bad S0 pte in the middle of a user page fault) (arch/vax/mm/fault.c)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Memory Allocation Issues</span></h3> + +<p style='margin-left:18.0pt'>Make sure we keep the VMB/PROM bitmap safe from the memory allocator.</p> + +<p style='margin-left:18.0pt'>Use the information in the prom bitmap to feed information about bad pages to the bootmem allocator.</p> + +<h2><span style='color:blue'>Reboot Code</span></h2> + +<p style='margin-left:18.0pt'>Save/Set up the RPB (reboot parameter block) properly so we can restart if needed.</p> + +<h2><span style='color:blue'>Other Enhancements</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Swapon to a file would be useful.</li> + <li >Track latest linus tree (2.4 series)</li> +</ul> + +<h2><span style='color:blue'>Other Problems</span></h2> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Infinite loops</span></h3> + +<ul style='margin-top:0cm' type=disc> + <li >Occasionally processes will go into an infinite loop (configure --target=vax-dec-linux for zlib is one) that refuses to respond to signals - ctrl z, c, \. We need to do_signal somewhere where we are not, or there is something missing from the console driver.</li> + <li >Occasionally, parent processes dont get woken up, when their child exits, and we end up in the idle loop.</li> +</ul> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Coredumps</span></h3> + +<p style='margin-left:18.0pt'>Coredump problem sizeof(elf_gregset_t) (64) != sizeof(struct pt_regs) (68)</p> + +<h3 style='margin-left:18.0pt'><span style='color:#333399'>Process termination</span></h3> + +<p style='margin-left:18.0pt'>Sometimes, we get null characters fed to a shell, when one of its children exits. This can be interpreted as EOF, and the shell will exit unless ignoreeof is set. (Seen on tcsh, and bash (although bash had other problems))</p> + +<h2><span style='color:blue'>Debugging (Dave Airlie)</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Implement system call trace pathway (arch/vax/kernel/entry.S, syscall.c)</li> + <li >Implement ptrace and profiling processes etc...</li> +</ul> + +<h2><span style='color:blue'>Clock</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Read/Write system clock routines.</li> + <li >Systems with full hardware clock implementations (KA55) need full handling of ticks.</li> +</ul> + +<h2><span style='color:blue'>Machine Specific Code</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Implement DMA routines for vsbus systems. KA46 has a stub that could be more intelligent.</li> + <li >The KA46 needs code to turn the Floating Point unit on at boot.</li> + <li >KA48 (VXT2000 and 4000/vlc) support requested.</li> +</ul> + +<p ></p> + +<h1><u><span style='color:red'>Drivers</span></u></h1> + +<h2><span style='color:blue'>Network (Lance/SGEC)</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Improve ka43_diagmem handling in lance driver. (parity control bit and memory over 16mb).</li> + <li >Lance driver doesnt work on KA46. It gets to init the card, and dies with a memory error (csr=8881). The KA46 DMA region/registers need sorting properly.</li> + <li >Develop SGEC network card driver (Richard Banks)</li> +</ul> + +<h2><span style='color:blue'>Other</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >vax-5380 driver is very slow, and occasionally locks up under heavy swapping.</li> + <li >Need a NCR53x9x driver for the 4000/60. There is a chipset driver in drivers/scsi/ and several example templates. The sun3 one looks good.</li> + <li >If we halt using the usual method (/sbin/halt) the console stops accepting input. On halt how should the dz console be setup?</li> +</ul> + +<p > </p> + +<h1><u><span style='color:red'>Miscellaneous</span></u></h1> + +<h2><span style='color:blue'>GCC</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Update to gcc 3.0 when glibc can compile with it.</li> + <li >Can't compile natively without REAL_ARITHMETIC defined, why not? If we do, constant doubles are stored with the wrong bit pattern, and generate reserved operand faults. e.g. compile + run "make". Debug native compiler build.</li> +</ul> + +<h2><span style='color:blue'>GLIBC</span></h2> + +<p style='margin-left:18.0pt'>Start port. (Dave Airlie)</p> + +<h2><span style='color:blue'>uClibc</span></h2> + +<p style='margin-left:18.0pt'>Assembler error messages compiling des.c<br> + /tmp/ccX7jORA.s: Assembler messages:<br> + /tmp/ccX7jORA.s:1231: Warning: Ignoring statement due to "Bad +operand"<br> + /tmp/ccX7jORA.s:1231: Warning: Ignoring statement because "a register has +no address"</p> + +<h2><span style='color:blue'>Bootloader (Andy Phillips)</span></h2> + +<p style='margin-left:18.0pt'>Generic Bootloader. asbl handles basic scsi boot on KA42/KA43...</p> + +<h2><span style='color:blue'>Other</span></h2> + +<ul style='margin-top:0cm' type=disc> + <li >Update mopd to use new packet filter API.</li> + <li >Dynamic libraries.</li> +</ul> + <script> <!-- document.write("<font size=-1>Last modified "+document.lastModified+"</font>"); @@ -123,4 +187,5 @@ </script> </body> + </html> |