Re: Ideas for TUX2

2001-07-03 Thread Ph. Marek

>> If a file's data has been changed, it suffices to update the inode and the
>> of free blocks bitmap (fbb).
>> But updating them in one go is not possible
>
>You seem to have missed some fundamental understanding of
>exactly how phase tree works; the wohle point of phase
>tree is to make atomic updates like this possible!
Well, my point was, that with several thousand inodes spread over the disk
it won't always be possible to update the inode AND the fbb in one go.
So I proposed the 2nd inode with generation counter!


Regards,

Phil
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



[PATCH] update for ALi Audio Driver

2001-07-03 Thread Matt_Wu




Dear all,

Here is ALi M5451 audio's patch file. In this new release ,version 0.14.8, we've
made such modifications.

1, Set EBUF1 and EBUF2 to still mode to avoid that upon some platforms the audio
will stop after playing for a while.
2, Reset m5451 controller to avoid ac97 access timeout error.
3, Fix bug in power management function ali_restore_regs.
4, Add cache for ac97 access to avoid access to ac97 codec at runtime.


Best regards,

Matt Wu
http://www.ali.com.tw

Information about update:
Updated files:  trident.c trident.h
Location:  drivers/sound
Driver Version: 0.14.8
Kernel Version: 2.4.X

patch file:

--- drivers/sound/trident.h.orig   Tue Jul  3 13:42:35 2001
+++ drivers/sound/trident.h   Tue Jul  3 13:44:18 2001
@@ -90,7 +90,10 @@
 T4D_STOP_B  = 0xb8, T4D_CSPF_B  = 0xbc,
 T4D_SBBL_SBCL  = 0xc0, T4D_SBCTRL_SBE2R_SBDD= 0xc4,
 T4D_STIMER = 0xc8, T4D_LFO_B_I2S_DELTA  = 0xcc,
-T4D_AINT_B = 0xd8, T4D_AINTEN_B= 0xdc
+T4D_AINT_B = 0xd8, T4D_AINTEN_B= 0xdc,
+ALI_MPUR2 = 0x22,
+ALI_EBUF1 = 0xf4,
+ALI_EBUF2 = 0xf8
 };

 enum ali_op_registers {
@@ -137,6 +140,13 @@
 ALI_STOP_ALL_CHANNELS= 0x,
 ALI_MULTI_CHANNELS_START_STOP = 0x0780

+};
+
+enum ali_EMOD_control_bit {
+ALI_EMOD_DEC   = 0x,
+ALI_EMOD_INC   = 0x1000,
+ALI_EMOD_Delay = 0x2000,
+ALI_EMOD_Still = 0x3000
 };

 enum ali_pcm_in_channel_num {
--- drivers/sound/trident.c.orig   Tue Jul  3 13:41:23 2001
+++ drivers/sound/trident.c   Tue Jul  3 13:44:14 2001
@@ -12,7 +12,6 @@
  *  Hacked up by:
  *  Aaron Holtzman <[EMAIL PROTECTED]>
  *  Ollie Lho <[EMAIL PROTECTED]> SiS 7018 Audio Core Support
- *  Ching-Ling Lee <[EMAIL PROTECTED]> ALi 5451 Audio Core Support
  *  Matt Wu <[EMAIL PROTECTED]> ALi 5451 Audio Core Support
  *
  *
@@ -31,6 +30,13 @@
  *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *
  *  History
+ *  v0.14.8
+ *  Apr 30 2001 Matt Wu
+ *  Set EBUF1 and EBUF2 to still mode
+ *  Add dc97/ac97 reset function
+ *  Fix power management: ali_restore_regs
+ *  Mar 09 2001 Matt Wu
+ *  Add cache for ac97 access
  *  v0.14.7
  *  Feb 06 2001 Matt Wu
  *  Fix ac97 initialization
@@ -135,7 +141,7 @@

 #include 

-#define DRIVER_VERSION "0.14.6"
+#define DRIVER_VERSION "0.14.8"

 /* magic numbers to protect our data structures */
 #define TRIDENT_CARD_MAGIC   0x5072696E /* "Prin" */
@@ -319,10 +325,12 @@
 struct trident_channel *(*alloc_rec_pcm_channel)(struct trident_card *);
 void (*free_pcm_channel)(struct trident_card *, unsigned int chan);
 void (*address_interrupt)(struct trident_card *);
+

-/* Add by Matt Wu 01-05-2001 for spdif in */
-int multi_channel_use_count;
-int rec_channel_use_count;
+//Add by Matt Wu 01-05-2001 for spdif in
+int  multi_channel_use_count;
+int  rec_channel_use_count;
+//End add
 };

 /* table to map from CHANNELMASK to channel attribute for SiS 7018 */
@@ -338,10 +346,18 @@
 DSP_BIND_I2S, DSP_BIND_CENTER_LFE, DSP_BIND_SURR, DSP_BIND_SPDIF
 };

-/* Add by Matt Wu 01-05-2001 for spdif in */
+
+//Add by Matt Wu 01-05-2001 for spdif in
 static int ali_close_multi_channels(void);
-static void ali_delay(struct trident_card *card,int interval);
-static void ali_detect_spdif_rate(struct trident_card *card);
+void ali_delay(struct trident_card *card,int interval);
+void ali_detect_spdif_rate(struct trident_card *card);
+//End add
+
+u16 MixerRegs[64][NR_AC97];
+int bRegsReady = 0;
+
+static void ali_ac97_write(struct ac97_codec *codec, u8 reg, u16 val);
+static u16 ali_ac97_read(struct ac97_codec *codec, u8 reg);

 static struct trident_card *devs;

@@ -353,8 +369,8 @@
unsigned long arg);
 static loff_t trident_llseek(struct file *file, loff_t offset, int origin);

-static void ali_ac97_set(struct ac97_codec *codec, u8 reg, u16 val);
-static u16 ali_ac97_get(struct ac97_codec *codec, u8 reg);
+static void ali_ac97_set(struct trident_card *card, int secondary, u8 reg, u16
val);
+static u16 ali_ac97_get(struct trident_card *card, int secondary, u8 reg);
 static void ali_set_spdif_out_rate(struct trident_card *card, unsigned int
rate);
 static void ali_enable_special_channel(struct trident_state *stat);
 static struct trident_channel *ali_alloc_rec_pcm_channel(struct trident_card
*card);
@@ -381,6 +397,7 @@
 unsigned mixer_regs[ALI_MIXER_REGS];
 } ali_registers;

+
 #define seek_offset(dma_ptr, buffer, cnt, offset, copy_count)(dma_ptr) +=
(offset); \
   (buffer) += (offset); \
   (cnt) -= (offset);   \
@@ -599,6 +616,9 @@

 /* select hardware channel to write */
 outb(channel, TRID_REG(card, T4D_LFO_GC_CIR));
+#ifdef DEBUG
+printk("GC_CIR=%xh\n", inb(TRID_REG(card, T4D_LFO_GC_CIR)));
+#endif

 /* Output the channel registers, but don't write 

[PATCH] initial detailed VM statistics code

2001-07-03 Thread Marcelo Tosatti


Hi, 

Well, I've started working on VM stats code for 2.4. 

vmstat output: 

# r  b  w   swpd   free   buff  cache   si   sobibo   incs us sy id
# 0  1  1 102624   1412120  89472   90 9114   304  9160  336  1102  12 7 92

This is the already known part..

# launder launder_w ref_inact alloc_r kswapd_w krec_w kflush_w
# 33   11   1471260   23328  151

First, the global statistics:

launder: nr of page_launder() calls
launder_w: nr of times page_launder() started writing out pages
ref_inac: nr of refill_inactive_scan() calls
alloc_r: number of reschedules on __alloc_pages()
kswapd_w: kswapd wakeups
krec_w: kreclaimd wakeups
kflush_w: kflushd wakeups

# Zone fshort ishort   scan  clean  skipl  skipd launder  react rescue deact recfail
#DMA  0224   3915   1500342   1406531153  0 452 636
# Normal  0  0  28073  12490   2451   9295   2678676  0 2654 947

Then the perzone statistics:

fshort: per-zone free shortage
ishort: per-zone inactive shortage
scan: number of pages scanned by page_launder
clean: number of pages cleaned by page_launder
skipl: number of locked pages skipped by page_launder
skipd: number of unlocked but dirty pages skipped by page_launder
launder: number of pages laundered by page_launder
react: number of pages reactivated by page_launder
rescue: number of pages reactivated by reclaim_page
deat: number of pages deactivated by refill_inactive_scan
recfail: number of reclaim_page failures


The code: 

Patch against 2.4.6pre9:
http://bazar.conectiva.com.br/~marcelo/patches/v2.4/2.4.6pre9/vmstats.patch

Patch against procps from Conectiva's srpm (which is not stock procps):
http://bazar.conectiva.com.br/~marcelo/patches/v2.4/2.4.6pre9/procps.patch

And full vmstat.c so people don't need to get Conectiva's srpm:
http://bazar.conectiva.com.br/~marcelo/patches/v2.4/2.4.6pre9/vmstat.c

The vmstat code is really crappy and new fields are painfull to add. If
anyone is willing to help me to write a decent vmstat, tell me. 

The hacked vmstat will coredump on a non-patched kernel.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: history of mrproper

2001-07-03 Thread David Chambers

On Tue, 3 Jul 2001, Mike Sklar wrote:

>
> Hopefully someone could enlighten me on the history of mrproper. I think
> its a great name for making sources *proper*. In particular I'd like to
> know what the *mr* might stand for.
>

Mr Proper looks like he's an alias of Mr. Clean (Procter and Gamble).  A
very appropriate name considering the deep cleaning that "make mrproper"
does!

See e.g. www.mrproper.de and www.mrclean.com  :-)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: history of mrproper

2001-07-03 Thread Kip Macy

Mr. Proper


On Tue, 3 Jul 2001, Mike Sklar wrote:

> 
> Hopefully someone could enlighten me on the history of mrproper. I think
> its a great name for making sources *proper*. In particular I'd like to
> know what the *mr* might stand for.
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: history of mrproper

2001-07-03 Thread Kurt Maxwell Weber

On Tuesday 03 July 2001 22:33, Mike Sklar ignorantly blabbered:
> Hopefully someone could enlighten me on the history of mrproper. I think
> its a great name for making sources *proper*. In particular I'd like to
> know what the *mr* might stand for.

To differentiate it from Mrs. Proper.

-- 
Regards,
Kurt Weber
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Why Plan 9 C compilers don't have asm("")

2001-07-03 Thread Olivier Galibert

On Tue, Jul 03, 2001 at 11:37:28PM -0400, Rick Hohensee wrote:
> In other words, if you know the push sequence of your C compiler's
> function calls, you don't need asm("");.

You are very much forgetting _inline_ asm.  And if you think that's
unimportant for performance, well, as Al would say, go back playing
with Hurd.

  OG.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



history of mrproper

2001-07-03 Thread Mike Sklar


Hopefully someone could enlighten me on the history of mrproper. I think
its a great name for making sources *proper*. In particular I'd like to
know what the *mr* might stand for.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Why Plan 9 C compilers don't have asm("")

2001-07-03 Thread Rick Hohensee

Because it's messy and unnecessary. Break this into asmlinkbuild, 
asmlink.c, asmlink.h and asmlink.S, chmod +x asmlinkbuild, run it, and
behold a 6. 
__

#..
# asmlinkbuild

gcc -c  asmlink.S
gcc -o asmlinked asmlink.c asmlink.o
asmlinked

cat asmlinkbuild asmlink.S asmlink.c > asmlink.post


/* ***
 asmlink.S

int bla (int ha, int hahaha, int uh) ;

That does...

push uh
push hahaha
push ha

*/

.globl bla
bla:
add 4(%esp), %eax
add 8(%esp), %eax
add 12(%esp), %eax
ret



/*    asmlink.c */
#include "asmlink.h"


int main () {
printf("%d\n", bla(1, 2 , 3 ) ) ;

}

_

That's with the GNU tools, without asm(), and without proper declaration
of printf, as is my tendency. I don't actually return an int either, do I?
LAAETTR.

In other words, if you know the push sequence of your C compiler's
function calls, you don't need asm("");. x86 Gcc is "push last declared
first, return in EAX". Plan 9 guys, not surprisingly, seem to prefer to
keep C as C, and asm as asm. I encountered this while trying to build
Linux 1.2.13 with current GNU tools. It breaks on changes in GNU C
asm()'s. Rather a silly thing to break on, eh?

I don't think this is much less clear than the : "=r" $0;  stuff, if at
all. This thing didn't take as long to code as it did to construct this
post. Perhaps the C-labels-in-asms optimizes better. I doubt if it's by
much, or if it's worth it.

Oops. I didn't include asmlink.h in the above, except as a comment
in asmlink.S. Here it is by itself...

/* asmlink.h*/
int bla (int ha, int hahaha, int uh) ;


Another easy win from Plan 9 that's related to this but that is not in
evidence here is that this thing on Plan 9 could build asmlinkbuild for
itself on the fly based on #pragma's in the headers that simply state what
library they are the header for. This to me is so obviously an improvement
to the usual state of affairs, an ornate system of dead-ends, as to be
depressing. The guys that wrote UNIX don't do such things to themselves
anymore.

Rick Hohensee
:; cLIeNUX /dev/tty11  11:00:14   /
:;d
ABOUTLGPL boot device   log  subroutine
ABOUT.Linux  Linuxcommand  floppy   mounts   suite
GPL  README   configureguestownertemp
H3nixRIGHTS   dev  help source
:; cLIeNUX /dev/tty11  22:44:25   /
:;










-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



What are rules for acpi_ex_enter_interpreter?

2001-07-03 Thread Petr Vandrovec

Hi Andrew,
  ACPI was reporting no S* states on my machine (ASUS A7V) for some time
and today I finally got some time to debug it. Problem is that during
initialization namespace init calls acpi_walk_namespace without
interpreter lock held - but it is wrong - as you can see from stack
trace, acpi_walk_namespace can call down to acpi_ev_address_space_dispatch,
which can call acpi_ex_exit_interpreter - and this is fatal on unlocked
lock :-(

  This points us to another problem - when acpi is compiled into kernel,
for some reason there is pending signal in thread doing ospm_busmgr and 
ospm_system initialization, so it fails to acquire lock because of
down_interruptible fails... but does not print any message, just no
valid S states are found. When acpi is compiled as module, modprobe
hangs until you hit ^C - then it is converted to previous case - module
says OK, but did nothing in reality.

  I did NOT verified other callers of acpi_walk_namespace... And there
is still some problem left, as although now S5 is listed as available,
poweroff still does nothing instead of poweroff.
Best regards,
Petr Vandrovec
[EMAIL PROTECTED]

Jul  4 02:03:02 ppc kernel: CPU:0
Jul  4 02:03:02 ppc kernel: EIP:0010:[printstate+9/48]
Jul  4 02:03:02 ppc kernel: EFLAGS: 0202
Jul  4 02:03:02 ppc kernel: eax: 000e   ebx: c01680d0   ecx: c020e996   edx: 
0001
Jul  4 02:03:02 ppc kernel: esi: cff75e3c   edi: c1428a4c   ebp: c1428c8c   esp: 
c140dc34
Jul  4 02:03:02 ppc kernel: ds: 0018   es: 0018   ss: 0018
Jul  4 02:03:02 ppc kernel: Process swapper (pid: 1, stackpage=c140d000)
Jul  4 02:03:02 ppc kernel: Stack: c140dc38 0018 c016955a c016206c 000fdf00 
   
Jul  4 02:03:02 ppc kernel:c1428a4c c140dcd4 c0166438 c1428a4c 0001 
000fdf00  0020 
Jul  4 02:03:02 ppc kernel:c140dcd4 c140e50c c020c5cc c015c8a5 c140e50c 
c020c685 0001 c020e320 
Jul  4 02:03:02 ppc kernel: Call Trace: [acpi_ex_exit_interpreter+26/48] 
[acpi_ev_address_space_dispatch+124/208] [acpi_ex_read_field_datum+120/224] 
[debug_print+21/160] [function_status_exit+49/64] 
Jul  4 02:03:02 ppc kernel:[acpi_ex_extract_from_field+123/432] 
[acpi_ex_common_access_field+56/64] [acpi_ex_access_region_field+36/64] 
[acpi_ex_read_data_from_field+220/288] [acpi_ex_resolve_node_to_value+411/560] 
[acpi_ex_resolve_to_value+42/80] 
Jul  4 02:03:02 ppc kernel:[acpi_ex_resolve_operands+282/768] 
[acpi_ds_eval_region_operands+56/144] [acpi_ds_exec_end_op+705/752] 
[acpi_ps_parse_loop+945/1904] [acpi_ut_release_mutex+103/144] 
[acpi_ut_create_generic_state+63/128] 
Jul  4 02:03:02 ppc kernel:[acpi_ps_parse_aml+519/640] 
[acpi_ds_get_region_arguments+222/256] [acpi_ds_exec_begin_op+0/304] 
[acpi_ds_exec_end_op+0/752] [acpi_ns_init_one_object+91/96] 
[acpi_ns_walk_namespace+193/288] 
Jul  4 02:03:02 ppc kernel:[acpi_ns_init_one_object+0/96] 
[acpi_walk_namespace+85/128] [acpi_ns_init_one_object+0/96] 
[acpi_ns_initialize_objects+61/80] [acpi_ns_init_one_object+0/96] 
[acpi_enable_subsystem+149/320] 
Jul  4 02:03:02 ppc kernel:[acpi_enable_subsystem+188/320] [acpi_init+283/352] 
[rest_init+0/48] [init+11/320] [rest_init+0/48] [kernel_thread+38/48] 
Jul  4 02:03:02 ppc kernel:[init+0/320] 
Jul  4 02:03:02 ppc kernel: 
Jul  4 02:03:02 ppc kernel: Code: 50 1e 06 50 55 57 56 52 51 53 89 e0 50 e8 b5 fe ff 
ff 83 c4 

diff -urdN linux/drivers/acpi/namespace/nsinit.c linux/drivers/acpi/namespace/nsinit.c
--- linux/drivers/acpi/namespace/nsinit.c   Tue Jul  3 15:58:35 2001
+++ linux/drivers/acpi/namespace/nsinit.c   Wed Jul  4 02:20:49 2001
@@ -27,6 +27,7 @@
 #include "acpi.h"
 #include "acnamesp.h"
 #include "acdispat.h"
+#include "acinterp.h"
 
 #define _COMPONENT  ACPI_NAMESPACE
 MODULE_NAME ("nsinit")
@@ -62,10 +63,17 @@
 
/* Walk entire namespace from the supplied root */
 
+   status = acpi_ex_enter_interpreter();
+   if (ACPI_FAILURE(status)) {
+   return status;
+   }
+   
status = acpi_walk_namespace (ACPI_TYPE_ANY, ACPI_ROOT_OBJECT,
  ACPI_UINT32_MAX, acpi_ns_init_one_object,
  , NULL);
 
+   acpi_ex_exit_interpreter();
+   
return (AE_OK);
 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: [PATCH] small patch to ide-tape.c

2001-07-03 Thread Pete Zaitcev

> This patch adds a missing semicolon that is noticed only if you define
> IDETAPE_DEBUG_LOG_VERBOSE:
> 
> John Guthrie
> [EMAIL PROTECTED]

It makes me curious, why do you need to define
IDETAPE_DEBUG_LOG_VERBOSE?

I fixed some stuff with files not restoring properly
with last block corrupt. Talking with Andre and Gadi now.
What is your problem?

-- Pete
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: USB printing == kernel lockup?

2001-07-03 Thread Pete Zaitcev

> When I do anything (print to it, query its ink levels with escputil,
> etc.) with my Epson 870 while it's hooked to my computer via USB, the
> whole machine locks hard. [...]
> Has anyone else has seen this problem?  I posted to the gimp-print and
> linux-usb lists, but there was nary a response.

I think I saw your message, but very little can be extracted
from that data.

-- Pete
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Sticky IO-APIC problem

2001-07-03 Thread Colin Bayer


"Randy.Dunlap" <[EMAIL PROTECTED]> wrote:
>What mobo (model/name) is it?
>Can you give us the output from "lspci -vv"?

OK, it's an Intel BN810E Desktop Board; here's the output from lspci -vv:

[root@fortytwo /root]# lspci -vv
00:00.0 Host bridge: Intel Corporation 82810E GMCH [Graphics Memory Controller Hub] 
(rev 03)
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- 
SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- Reset- FastB2B-

00:1f.0 ISA bridge: Intel Corporation 82801AA ISA Bridge (LPC) (rev 02)
Control: I/O+ Mem+ BusMaster+ SpecCycle+ MemWINV- VGASnoop- ParErr- Stepping- 
SERR+ FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- This shows that Linux mapped the APIC (part of the processor).
>It says nothing about mapping any IO APICs (unless you deleted
>that part :).

Oops, sorry -- misunderstood the meaning of the message. 8-P

>So, how does one know if a (UP) system has an IO APIC and that
>Linux can be configured to use the UP IO APIC code?...
>
>(That's a serious question: does an IO APIC show up in lspci output?)
>
>And why do you think that this system has an IO APIC?
>Is it documented to have one?
>[just digging for clues]

There's no IO-APIC in the lspci output, but that's because it's integrated as part of 
the i810 chipset; it's probably hidden to keep people from tinkering with the settings 
-- there's not much one can do to modify an interrupt controller that wouldn't end 
badly 8=;-) (according to Intel's docs, the IO-APIC's carried somewhere on the 82801AA 
I/O Controller Hub, and I quote:)

>From Intel's 82801AA I/O Controller Hub Datasheet 
>(http://developer.intel.com/design/chipsets/datashts/29065503.pdf):

Features List: (page 3)

...
- Interrupt Controller
 - Two cascaded 82C59
 - Integrated IO-APIC capability
 - 15 Interrupt support in 8259 mode, 24 Interrupt support in
   IO-APIC mode
...

82801AA Simplified Block Diagram: (page 4)
 
SERIRQ <---> |   |
PIRQ[A..D]# <--> |   |
IRQ[14..15] ---> | Interrupt |<---
APICCLK ---> |   |
APICD[1..0] <--> |___|

82801AA Datasheet Introduction: (page 25)

Advanced Programmable Interrupt Controller (APIC) 

In addition to the standard ISA compatible interrupt controller (PIC) described in the 
previous section, the ICH incorporates the Advanced Programmable Interrupt Controller 
(APIC). While the standard interrupt controller is intended for use in a uni-processor 
system, APIC can be used in either a uni-processor or multi-processor system.

Hope this clears up some confusion.

 -- Colin


The CompNerd Network: http://www.compnerd.com/
Where a nerd can be a nerd.  Get your free [EMAIL PROTECTED]!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



page reserved twice

2001-07-03 Thread D. Stimits

I'm curious if there is any significance to this, which occurs at each
reboot on an SMP system running noapic (sometimes Netscape manages to
produce a hard lockup on the system, sometimes a core dump indicates NS
had signal 7, bus error, in cases where it doesn't lock the system),
2.4.6-pre1 with XFS patches:

 kernel: BIOS-provided physical RAM map:
 kernel:  BIOS-e820:  - 0009fc00 (usable)
 kernel:  BIOS-e820: 0009fc00 - 000a (reserved)
 kernel:  BIOS-e820: 000e - 0010 (reserved)
 kernel:  BIOS-e820: 0010 - 0ffe (usable)
 kernel:  BIOS-e820: 0ffe - 0fff8000 (ACPI data)
 kernel:  BIOS-e820: 0fff8000 - 1000 (ACPI NVS)
 kernel: Scan SMP from c000 for 1024 bytes.
 kernel: Scan SMP from c009fc00 for 1024 bytes.
 kernel: Scan SMP from c00f for 65536 bytes.
 kernel: found SMP MP-table at 000faf50
 kernel: hm, page 000fa000 reserved twice.
 kernel: hm, page 000fb000 reserved twice.
 kernel: hm, page 000f4000 reserved twice.
 thanteros kernel: hm, page 000f5000 reserved twice.
 thanteros kernel: On node 0 totalpages: 65504
 thanteros kernel: zone(0): 4096 pages.
 kernel: zone(1): 61408 pages.
 kernel: zone(2): 0 pages.
 kernel: Intel MultiProcessor Specification v1.1
 kernel: Virtual Wire compatibility mode.
 kernel: OEM ID: _AMI_Product ID: 840_CARMEL__ APIC at: 0xFEE0


Very similar messages seem to occur on a different machine with RH's
2.4.2 kernel, BX chipset, and IO-APIC enabled. The machine this is from
has had this message on earlier kernels as well, none of which had XFS
patches. What is the significance (or consequence) of pages reserved
twice?

D. Stimits, [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: 2.4.5 keyspan driver

2001-07-03 Thread Gregory T. Norris

In the hopes that it might prove helpful, I reran coldsync after
loading usbserial.o and keyspan.o with the "debug=1" option.  Here's
what was logged:

-  -
Jul  3 19:10:45 glitch kernel: usbserial.c: USB Serial support registered for Generic
Jul  3 19:10:45 glitch kernel: usb.c: registered new driver serial
Jul  3 19:10:45 glitch kernel: usbserial.c: none matched
Jul  3 19:10:45 glitch kernel: usbserial.c: v1.0.0 Greg Kroah-Hartman, [EMAIL PROTECTED], 
http://www.kroah.com/linux-usb/
Jul  3 19:10:45 glitch kernel: usbserial.c: USB Serial Driver
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA18X - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA19 - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA19W - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA28 - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA28X - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA49W - (without firmware)
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA18X
Jul  3 19:10:51 glitch kernel: usbserial.c: none matched
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA19
Jul  3 19:10:51 glitch kernel: usbserial.c: descriptor matches
Jul  3 19:10:51 glitch kernel: usbserial.c: found bulk out
Jul  3 19:10:51 glitch last message repeated 2 times
Jul  3 19:10:51 glitch kernel: usbserial.c: found bulk in
Jul  3 19:10:51 glitch last message repeated 3 times
Jul  3 19:10:51 glitch kernel: usbserial.c: Keyspan USA19 converter detected
Jul  3 19:10:51 glitch kernel: usbserial.c: get_free_serial 1
Jul  3 19:10:51 glitch kernel: usbserial.c: get_free_serial - minor base = 0
Jul  3 19:10:51 glitch kernel: usbserial.c: usb_serial_probe - setting up 4 port 
structures for this device
Jul  3 19:10:51 glitch kernel: usbserial.c: Keyspan USA19 converter now attached to 
ttyUSB0 (or usb/tts/0 for devfs)
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA19W
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA28
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA28X
Jul  3 19:10:51 glitch kernel: usbserial.c: USB Serial support registered for Keyspan 
USA49W
Jul  3 19:10:51 glitch kernel: keyspan.c: v1.0.0 Hugh Blemings <[EMAIL PROTECTED]>
Jul  3 19:10:51 glitch kernel: keyspan.c: Keyspan USB to Serial Converter Driver
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_open
Jul  3 19:10:56 glitch kernel: keyspan.c: keyspan_usa19_calc_baud 9600 ff b2.
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5402
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_set_termios - port 0
Jul  3 19:10:56 glitch kernel: keyspan.c: keyspan_usa19_calc_baud 9600 ff b2.
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5402
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_set_termios - port 0
Jul  3 19:10:56 glitch kernel: keyspan.c: keyspan_usa19_calc_baud 9600 ff b2.
Jul  3 19:10:56 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:11:00 glitch kernel: usbserial.c: serial_write - port 0, 16 byte(s)
Jul  3 19:11:00 glitch kernel: usbserial.c: serial_write - port 0, 26 byte(s)
Jul  3 19:11:00 glitch kernel: usbserial.c: port_softint - port 0
Jul  3 19:11:02 glitch kernel: usbserial.c: serial_write - port 0, 26 byte(s)
Jul  3 19:11:02 glitch kernel: usbserial.c: port_softint - port 0
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_write - port 0, 26 byte(s)
Jul  3 19:11:04 glitch kernel: usbserial.c: port_softint - port 0
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5402
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_set_termios - port 0
Jul  3 19:11:04 glitch kernel: keyspan.c: keyspan_usa19_calc_baud 9600 ff b2.
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_ioctl - port 0, cmd 0x5401
Jul  3 19:11:04 glitch kernel: usbserial.c: serial_write - port 0, 18 byte(s)
Jul  3 19:11:04 

Re: Ideas for TUX2

2001-07-03 Thread Rik van Riel

On Tue, 3 Jul 2001, Ph. Marek wrote:

> If a file's data has been changed, it suffices to update the inode and the
> of free blocks bitmap (fbb).
> But updating them in one go is not possible

You seem to have missed some fundamental understanding of
exactly how phase tree works; the wohle point of phase
tree is to make atomic updates like this possible!

Rik
--
Virtual memory is like a game you can't win;
However, without VM there's truly nothing to lose...

http://www.surriel.com/ http://distro.conectiva.com/

Send all your spam to [EMAIL PROTECTED] (spam digging piggy)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



RPC: rpciod waiting on sync task!

2001-07-03 Thread Dima Brodsky

Hi,

I modified the linux NFS client, kernel 2.4.5 and 2.4.6-pre7, to send
an extra SETATTR, with special values, within nfs_open and nfs_release
so that I would be able to track file open and close.  For the server I
am using a slightly modified linux user level nfs server.

What I noticed is that after this change I get:

RPC: rpciod waiting on sync task!

coming from the kernel under heavy read load, especially with
larger chunks of data 8k, 16, and 64k.

The code introduced into nfs_open and nfs_release is:

memset( , 0, sizeof(struct nfs_fattr) );
memset( , 0, sizeof(struct iattr) );

attr.ia_valid = ATTR_MODE | ATTR_UID | ATTR_GID | ATTR_SIZE;
attr.ia_mode = inode->i_mode;
attr.ia_uid = -10;
attr.ia_gid = -10;
attr.ia_size = -10;
attr.ia_atime = -1;
attr.ia_mtime = -1;
attr.ia_ctime = -1;
attr.ia_attr_flags = -1;

error = NFS_PROTO(inode)->setattr(inode, , );
if ( error ) {
printk( "nfs_network_openclose: error=%d\n", error );
}

Does anybody see any problems with this code?  The unmodified nfs client
works fine with the unmodified nfs server.

Thanks
ttyl
Dima

-- 
Dima Brodsky   [EMAIL PROTECTED]
   http://www.cs.ubc.ca/~dima
201-2366 Main Mall (604) 822-6179 (Office)
Department of Computer Science (604) 822-2895 (DSG Lab)
University of British Columbia, Canada (604) 822-5485 (FAX)

Computers are like Old Testament gods; lots of rules and no mercy.
  (Joseph Campbell)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



[PATCH] small patch to ide-tape.c

2001-07-03 Thread John Guthrie

Hello all,

This patch adds a missing semicolon that is noticed only if you define
IDETAPE_DEBUG_LOG_VERBOSE:

John Guthrie
[EMAIL PROTECTED]

--CUT HERE-

--- ide-tape.c.orig Tue Jul  3 18:20:22 2001
+++ ide-tape.c  Tue Jul  3 18:22:41 2001
@@ -1409,7 +1409,7 @@
case IDETAPE_WRITE_FILEMARK_CMD:return("WRITE_FILEMARK_CMD");
case IDETAPE_SPACE_CMD: return("SPACE_CMD");
case IDETAPE_INQUIRY_CMD:   return("INQUIRY_CMD");
-   case IDETAPE_ERASE_CMD: return("ERASE_CMD")
+   case IDETAPE_ERASE_CMD: return("ERASE_CMD");
case IDETAPE_MODE_SENSE_CMD:return("MODE_SENSE_CMD");
case IDETAPE_MODE_SELECT_CMD:   return("MODE_SELECT_CMD");
case IDETAPE_LOAD_UNLOAD_CMD:   return("LOAD_UNLOAD_CMD");
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Sticky IO-APIC problem

2001-07-03 Thread Manfred Spraul

 
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

> This shows that Linux mapped the APIC (part of the processor).
> It says nothing about mapping any IO APICs (unless you deleted
> that part :).
> 
Correct. Linux always enables the APIC, but it needs some bios tables
for the IO APIC. And the IO APIC is not present on all uniprocessor
motherboards.

> So, how does one know if a (UP) system has an IO APIC and that
> Linux can be configured to use the UP IO APIC code?...

Figure out which ICH is used (lspci?), then check Intel's documentation.

But even if an io apic is present, Linux can only use it if a MP table
is present. Afaik ACPI tables are not yet supported on i386, but ia64
already supports detecting the IO APIC's based on ACPI tables.

--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



USB printing == kernel lockup?

2001-07-03 Thread Pete Toscano

Hello,

I'm still looking into this, but has anybody else seen this problem?
When I do anything (print to it, query its ink levels with escputil,
etc.) with my Epson 870 while it's hooked to my computer via USB, the
whole machine locks hard.  If I change the connection over to a printer
cable on a parallel port connection, eveything works fine.  USB printing
used to work fine until recently.  (I don't print much, so how recently,
I don't know yet.)

I'm in the process of trying other kernels (tested 2.4.5 and
2.4.6-pre[68]) and USB controllers (JE's UHCI vs the standard UHCI) but
I'm not done yet. 

Has anyone else has seen this problem?  I posted to the gimp-print and
linux-usb lists, but there was nary a response.

The printer is connected to the USB hub in my Nokia monitor, which also
has a mouse connected to it and that's running fine.  I'm using a Tyan
Tiger 133 mother board (VIA Apollo Pro 133A chipset) and SMP-enabled
kernel.

Thanks,
pete
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



SCHED_FIFO task blocks magic sysrq

2001-07-03 Thread David Mansfield

It seems like the sysrq code can get starved by a SCHED_FIFO task.  I
learned this by having an accidentally runaway SCHED_FIFO task which
locked up my system.  No SAK, no sync, no unmount, no reboot.  Big Red
Button.

David

-- 
David Mansfield   (718) 963-2020
[EMAIL PROTECTED]
Ultramaster Group, LLC   www.ultramaster.com
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



RE: ACPI fundamental locking problems

2001-07-03 Thread Grover, Andrew

> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> > BTW of course ACPI can be turned off via make menuconfig.
> 
> Can you point me to the name of the option? I can't find it on my IA64

ACPI is required for IA64 to boot, so you can't disable it AFAIK. Sorry, I
should have included that caveat in my previous message.

-- Andy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Sticky IO-APIC problem

2001-07-03 Thread Randy.Dunlap

Colin Bayer scribed:
| I have a Pentium III 933/133 (Coppermine, stepping 6) in an
Intel-manufactured
| i810 motherboard (hey, I

What mobo (model/name) is it?
Can you give us the output from "lspci -vv"?

| know it's a lame chipset, but it was on sale). On boot, the kernel
(version
| 2.4.6-pre8) identifies and maps the
| IO-APIC onboard, but does not assign any IRQs to it. 
| 
| The relevant boot log snippet follows. 
| 
| [root@fortytwo i386]# cat /var/log/dmesg 
|  ... 
|  ... 
| mapped APIC to e000 (0121c000) 

This shows that Linux mapped the APIC (part of the processor).
It says nothing about mapping any IO APICs (unless you deleted
that part :).

So, how does one know if a (UP) system has an IO APIC and that
Linux can be configured to use the UP IO APIC code?...

(That's a serious question: does an IO APIC show up in lspci output?)

And why do you think that this system has an IO APIC?
Is it documented to have one?
[just digging for clues]

| Kernel command line: auto BOOT_IMAGE=linux-test ro root=307
| BOOT_FILE=/boot/vmlinuz-2.4.6-pre8
| devfs=mount pirq=9,4 
| PIRQ redirection, working around broken MP-BIOS. 
| ... PIRQ0 -> IRQ 9 
| ... PIRQ1 -> IRQ 4 
|  ... 
|  ... 
| 
| And /proc/interrupts: 
| [root@fortytwo i386]# cat /proc/interrupts 
|CPU0 
|   0: 79409 XT-PIC timer 
|   1: 5911 XT-PIC keyboard 
|   2: 0 XT-PIC cascade 
|   4: 990 XT-PIC es1371 
|   8: 1 XT-PIC rtc 
|   9: 26402 XT-PIC usb-uhci, serial 
|  11: 16473 XT-PIC i810@PCI:0:1:0 
|  14: 5152 XT-PIC ide0 
|  15: 47 XT-PIC ide1 
| NMI: 0 
| ERR: 0 
| MIS: 0 
| [root@fortytwo i386]# 
| 
| This problem also occurs when booting without the pirq switch. I've
configured
| everything the way it's
| mentioned in Documentation/i386/IO-APIC.txt, but it doesn't help.
Anyway, thx in
| advance for the help. 

~Randy
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



[PATCH] 2.4.5 i810_audio.c, ac97_codec.c

2001-07-03 Thread Collin Park

Hello,

Attached is a patch to the above files.  Here's what they do:

1. ac97_codec.c, allow ad1886 to be recognized and brought up
   properly, and sets S/PDIF rate to the 48 kHz rate prescribed by
   ac97 2.2 spec.

   Reference for this is in...

http://www.alsa-project.org/alsa/ftp/manuals/ad/AD1886.pdf
(page 20)

   and
ftp://download.intel.com/ial/scalableplatforms/ac97r22.pdf
(page 62)

   Perhaps someone (Ollie?) would prefer that these changes apply to
   other ac97 codecs, since the ac97r22.pdf spec says that SPDIF bit
   in register 2A shall be 0 when modifying register 3A -- thus this
   is not unique to ad1886?


2. i810_audio.c, turn S/PDIF *on* when bringing up the codec; also
   added comments to explain what [some of] the bits do.

   Descriptions of the bits are [supposed to be] in the above PDF
   files: p.19 of the AD1886.pdf, p.59 of ac97r22.pdf

   There are some other bits whose function I don't understand; I
   didn't alter them, but inserted comments.

   Perhaps someone (Zach, Jaroslav, Alan, ...?) would prefer to look
   more closely at the bits being set in AC97_EXTENDED_STATUS... i.e.,
   the 0x8000 bit, which is not described in the ac97 2.2 spec as
   other than 'x', why we turn on PRL, PRK, and PRI but have PRJ
   turned off (indeed, with PRL=1, the mic adc is off, so why turn on
   VRM?), etc.  I don't know what most of these bits are, but as I
   mentioned just modify the bit[s] that I know I need set.


These patches were tested under 2.4.4 (neither file has changed much
from 2.4.4 to 2.4.5 and indeed a 2.4.4 patch goes cleanly onto 2.4.5).

Comments, corrections, suggestions?  In case TAB characters get
trashed by the mail system, these patches will also be available, for
a while anyway, at

http://www.sonic.net/~cpark/245-sound-drivers.patch


 cut here ---
diff -ru linux-2.4.5-stock/drivers/sound/ac97_codec.c 
linux-2.4.5_patched/drivers/sound/ac97_codec.c
--- linux-2.4.5-stock/drivers/sound/ac97_codec.cThu Apr 19 22:58:20 2001
+++ linux-2.4.5_patched/drivers/sound/ac97_codec.c  Tue Jul  3 11:40:51 2001
@@ -66,6 +66,8 @@
 static int sigmatel_9721_init(struct ac97_codec *codec);
 static int sigmatel_9744_init(struct ac97_codec *codec);
 static int enable_eapd(struct ac97_codec *codec);
+static int setup_ad1886(struct ac97_codec *codec);
+
 
 /* sorted by vendor/device id */
 static const struct {
@@ -77,6 +79,7 @@
{0x41445340, "Analog Devices AD1881",   NULL},
{0x41445348, "Analog Devices AD1881A",  NULL},
{0x41445460, "Analog Devices AD1885",   enable_eapd},
+   {0x41445361, "Analog Devices AD1886"  , setup_ad1886},
{0x414B4D00, "Asahi Kasei AK4540",  NULL},
{0x414B4D01, "Asahi Kasei AK4542",  NULL},
{0x414B4D02, "Asahi Kasei AK4543",  NULL},
@@ -852,6 +855,22 @@
codec->codec_write(codec, AC97_POWER_CONTROL,
codec->codec_read(codec, AC97_POWER_CONTROL)|0x8000);
return 0;
+}
+
+/*
+ *  Bring up an AD1886
+ */
+ 
+static int setup_ad1886(struct ac97_codec * codec)
+{
+/* The spec says not to mess with other bits unless
+   S/PDIF is turned *off* in reg 2A */
+codec->codec_write(codec, AC97_EXTENDED_STATUS, 0);
+
+/* The 1886 spec dated 08/25/00 says default value=0
+   but ac97 2.2 says it should be 0x2000. */
+codec->codec_write(codec, AC97_RESERVED_3A, 0x2000); /* 48 kHz */
+return 0;
 }
 
 
diff -ru linux-2.4.5-stock/drivers/sound/i810_audio.c 
linux-2.4.5_patched/drivers/sound/i810_audio.c
--- linux-2.4.5-stock/drivers/sound/i810_audio.cSat May 19 17:43:07 2001
+++ linux-2.4.5_patched/drivers/sound/i810_audio.c  Tue Jul  3 11:40:51 2001
@@ -2001,8 +2001,12 @@
printk(KERN_WARNING "i810_audio: only 48Khz playback 
available.\n");
else
{
-   /* Enable variable rate mode */
-   i810_ac97_set(codec, AC97_EXTENDED_STATUS, 9);
+   /* Turn on VRA, VRM (enable variable rate mode), turn off DRA.
+   Turn on SPDIF, set source data to AC-link slots 3&4.
+   (see AC'97 component specification rev 2.2 from intel) */
+   i810_ac97_set(codec, AC97_EXTENDED_STATUS, 0xD);
+/* ac'97 2.2 doesn't say what the 0x8000 bit is, but 0x6800
+   bits turn PCM center DAC, PCM LFE DACs, and MIC ADC all 
+off */
i810_ac97_set(codec,AC97_EXTENDED_STATUS,
i810_ac97_get(codec, AC97_EXTENDED_STATUS)|0xE800);
 cut here ---

-- 
Neither I nor my employer will accept any liability for any problems
or consequential loss caused by relying on this information.  Sorry.
Collin Park Not a 

Re: ACPI fundamental locking problems

2001-07-03 Thread arjan

In article <[EMAIL PROTECTED]> you wrote:
>> walking into their top secret menwith hill base playing the 
>> mission impossible
>> theme tune then chaining themselves to things..

> You're kidding.right?

> BTW of course ACPI can be turned off via make menuconfig.

Can you point me to the name of the option? I can't find it on my IA64
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ACPI fundamental locking problems

2001-07-03 Thread Alan Cox

> This goes to the special nature of the Global Lock. If we cannot acquire it,
> we set a bit, and the system interrupts when it is released. Please see
> acpi_ev_acquire_global_lock().

Gotcha..now I follow - I read it as acquire or spin not acquire or fail

> > if you make a callback from the ACPI code - eg power 
> > management that itself
> > needs to call AML code ?
> 
> All we do at interrupt level is signal the semaphore that threads needing
> the GL have blocked on. They continue execution at non-interrupt level.

Obvious question - you call kmalloc with that lock held - that can sleep
as it is GFP_KERNEL so other threads can run and make acpi calls ..
I assume the other threads block on the acpi lock, and the kmalloc eventually
returns.

> > Microsoft very early on in debugging Win2K problems ask 
> > people to use non
> > ACPI settings. 
> 
> What is your source for this? They certainly could have said that, but
> everything I've heard is that MS was so committed to ACPI, they almost left
> APM support out of W2K.

Microsoft helpdesk engineers I know (contrary to assumptions from some quarters
there is a lot of respect between some of the MS and linux folks for each others
work)

> 3) ACPI increases visibility of vendor code. You can disassemble AML. You
> can step through it with our debugger.

Well actually the license on the intel bios says not. Of course the license
is invalid here but nevertheless..

> > Governments. They'd hate the US to get prior warning of say protestors
> > walking into their top secret menwith hill base playing the 
> > mission impossible
> > theme tune then chaining themselves to things..
> 
> You're kidding.right?

No. There are people more paranoid than I care to consider sane. They have
lots of money. There are also a bunch of greenpeace people who today walked
straight into a US top secret base in the UK singing the mission impossible
theme tune .. which did you doubt ?

[Come to think of it which do you find the more improbable ..]

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



RE: ACPI fundamental locking problems

2001-07-03 Thread Grover, Andrew

Some of this discussion's getting a little X-Files-y.

However, there are some points I'd like to touch on...

> From: Alan Cox [mailto:[EMAIL PROTECTED]]
> Well lets take a look at the asm shall we
> 1.It doesnt have a seperate loop when it fails to take the lock
>   polling it (See intels own docs on spin locks). You do read your
>   own publications ?

This goes to the special nature of the Global Lock. If we cannot acquire it,
we set a bit, and the system interrupts when it is released. Please see
acpi_ev_acquire_global_lock().

> 2.It should be using rep nop  (See your own Intel PIV 
> publications)
> 3.Should be asm __volatile__ or gcc can move it

You are most likely right about all this stuff. Haven't had the need to fix
it because it's been working fine. Patches accepted.

> I am also somewhat puzzled about contexts here. What happens 
> if you take
> an IRQ during the global lock acquire and want to do ACPI. 
> What happens
> if you make a callback from the ACPI code - eg power 
> management that itself
> needs to call AML code ?

All we do at interrupt level is signal the semaphore that threads needing
the GL have blocked on. They continue execution at non-interrupt level.

> I am assuming the ACPI stuff has no IRQ level execution 
> ability, but are you
> sure ACPI never calls a single code path that can require an 
> ACPI operation
> from a callback - eg the PM layer ? Otherwise how can you be 
> sure there won't
> be any priority inversions between the bios/acpi locking set 
> and the kernel 
> locking set

We're aware of this issue and have coded accordingly. We have run into these
issues (specifically with the Embedded Controller driver) and we fix them
when they crop up.

> Microsoft very early on in debugging Win2K problems ask 
> people to use non
> ACPI settings. 

What is your source for this? They certainly could have said that, but
everything I've heard is that MS was so committed to ACPI, they almost left
APM support out of W2K.

> > Jeff Garzik:
> > The difference with ACPI is that vendors can write code 
> that is executed
> > in the kernel's context (instead of what you can consider the BIOS's
> > context).  That is a whole new can of worms.

(I know I'm replying to Jeff's point in your email, sorry)
1) Vendors can write code that is *interpreted* by the OS.
2) If vendors write a malicious BIOS, it's game over even without ACPI
3) ACPI increases visibility of vendor code. You can disassemble AML. You
can step through it with our debugger.

> For security reasons alone we need to ensure ACPI can be 
> firmly in the off
> position. Executing US written binary code in the Linux 
> kernel will not be
> acceptable to european corporations, non US military bodies and most 
> Governments. They'd hate the US to get prior warning of say protestors
> walking into their top secret menwith hill base playing the 
> mission impossible
> theme tune then chaining themselves to things..

You're kidding.right?

BTW of course ACPI can be turned off via make menuconfig.

> And we have customers who pointedly don't talk to the BIOS 
> and kill SMI/SMM
> early on...

And from what I understand, Itanium doesn't necessarily have a Global Lock
either. Great, no problem. However, we still need to handle machines that
do.

Regards -- Andy

PS Have I read *all* the Intel pubs? Cover to cover? Um, no. ;-)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: O_DIRECT! or O_DIRECT?

2001-07-03 Thread Anton Altaparmakov

At 21:34 03/07/2001, Samium Gromoff wrote:
[snip]
>One more problem i see here, and i think it is an
> *extremely* important one, that making open( ... ,
> BLA_BLA_BLA | O_DIRECT) is a thing some people may
> overspeculate with. I mean that implementing O_DIRECT
> in cp(1), wins the prize, but in the case of, say,

Why should it? It is very well possible that the file(s) being copied have 
been accessed beforehand and hence are already in the page/buffer cache. 
Using O_DIRECT would not only completely bypass the page/buffer cache but 
it would also cause the cache to be flushed (if dirty) and the cache 
buffers/pages invalidated (otherwise you lose coherency). This is going to 
be _slower_ than not using O_DIRECT.

> find(1) it is definitely not a wise move. The problem
> may be determined as "poisoning" software with this
> godblessed O_DIRECT, to the state, when 70% of code
> on an average machine will use it, thus *completely*
> killing the advantages of buffered access, and
> suddenly *bang!*: the overall performance is died.

Er. Using O_DIRECT means you are doing _unbuffered_ access. - Maybe I am 
misunderstanding your comments, but is seems to me you have the whole 
concept of O_DIRECT the wrong way round.

>But the worst thing, is what the process of
> poisoning is completely uncontrollable: each
> stupid doodie can think, that His shitful piece of Code,
> is Especially Important, ant that in his case O_DIRECT
> is perfectly suitable. And in the case His code is
> someway performance critical, then most likely O_DIRECT
> will really improve his Code benchmarks, and that is
> making things really awful, leading to the hell large
> crowd of pig happy dudes thinking their useless code
> is life critical, and thus dooming linux.

O_DIRECT _decreases_ performance drastically in most cases. So nobody in 
their right mind would use it for normal applications. - The people who 
would use it and would actually experience a speed _increase_ would be 
programmers of large databases which perform their own caching in user 
space (thus making the normal fs level caching unnecessary, and in fact, 
worse than the unbuffered case) and programmers of multi media streaming 
applications (e.g. video/audio streaming including DVD playback[1] for 
example) which know that A) the data is not in the cache and B) the data 
will never be accessed again in the near future so caching the data is not 
only pointless but causes actually useful (other, unrelated) data present 
in the cache to be displaced out of the cache.

>Maybe i`m stupid, as these potential dudes, and
> painting things in too dark colors, but O_DIRECT,
> i think, is a dangerous thing to play with.

It is indeed. It is only useful in very special circumstances as described 
above. Using it in "normal" applications is stupid and will lead to 
degradation of performance of the application using it.

>Maybe i`m missing the whole point, and thus i want to
> hear what other people will tell about it.

I think you do... I hope I managed to explain what O_DIRECT actually is above.

Shame you didn't attend the Linux Developers Conference (in Manchester) 
last weekend as Andrea Arcangeli gave a very nice talk explaining O_DIRECT 
in depth.

Best regards,

 Anton

[1] Actually DVD players make use or raw i/o to access the DVD disk device 
as a whole, thus bypassing file system code altogether, which is even 
faster, but if you were to copy a DVD to your hard drive than O_DIRECT 
would give you the described benefits.


-- 
   "Nothing succeeds like success." - Alexandre Dumas
-- 
Anton Altaparmakov  (replace at with @)
Linux NTFS Maintainer / WWW: http://linux-ntfs.sf.net/
ICQ: 8561279 / WWW: http://www-stu.christs.cam.ac.uk/~aia21/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: serial port O_SYNC functionality in 2.4.5

2001-07-03 Thread Russell King

On Tue, Jul 03, 2001 at 04:42:00PM -0400, Stuart MacDonald wrote:
> Best way to get this in the serial driver is to do some patches for it
> and send them to Ted. :-)

Please copy them to me as well.  The ARM tree has a core uart driver
in currently which handles several different types of serial ports.

Thanks.

--
Russell King ([EMAIL PROTECTED])The developer of ARM Linux
 http://www.arm.linux.org.uk/personal/aboutme.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Linux 2.4.5-ac24

2001-07-03 Thread Alan Cox


ftp://ftp.kernel.org/pub/linux/kernel/people/alan/2.4/

 Intermediate diffs are available from
http://www.bzimage.org

2.4.5-ac24
o   Serverworks AGP support (Jeff Hartmann)
o   Split I/O requests on pdcraid/hptraid when  (Arjan van de Ven)
they cross stride
o   Fix hangs on TI1410 cardbus bridge  (Erik Mouw)
o   Update Configure.help   (Eric Raymond)
o   Fix bug in ext2_new_inode   (Al Viro)
o   Fix double pci_set_power_state stub (Jeff Garzik)
o   Fix mcheck_disable  (Andrew Morton)
o   Merge 2.4.6-pre9
- Ignored ATI changes versus old atyfb codebase
- Remove several totally broken drivers/net/Config.in changes
o   Update act2000 isdn driver  (Kai Germaschewski)
o   Fix ELOOP handling bug  (Al Viro)

2.4.5-ac23
o   Merge with 2.4.6pre8
| This should make things much more stable
o   Restore backed out shm patches  (Christoph Rohland)
o   Fix quotaoff crash  (Jan Kara)
o   Move stuff into BSS on decnet   (Xavier Bestel)
o   Update ims twinturbo fb maintainer  (Paul Mundt)
o   Update Crutcher Dunnavant's email address   (Crutcher Dunnavant)
o   UML ^S/^Q support for the console and serial(Livio Soares)
o   code cleanups in UML drivers(Jeff Dike)
o   UML include and #define cleanups(Niels Kristian Bech Jensen)
o   UML ubd driver defines blk_size correctly   (Roman Zippel)
o   which allowed clean up of related ubd code  (Jeff Dike)
o   tweak the UML definition is a fixable seg fault (Jeff Dike)
o   fix the UML TASK_UNINTERRUPTIBLE deadlock   (Jeff Dike)
o   Update ldconfig scripts for multiple rodata (Jakub Jelinek)
o   Small isdn.h fixes  (Kai Germaschewski)
o   Add Advantech TurboPAM isdn (Stelian Pop)
o   Maxine frame buffer cleanups(Paul Mundt)
o   UDF cleanup (Arnaldo Carvalho de Melo)
o   Fix jffs2 includes  (Keith Owens)
o   Small cleanups to vt.c  (Arnaldo Carvalho de Melo)
o   Clean up istallion driver   (Arnaldo Carvalho de Melo)
o   Clean up sh-sci driver  (Arnaldo Carvalho de Melo)
o   Clean up selection  (Arnaldo Carvalho de Melo)
o   Small random driver cleanups(Arnaldo Carvalho de Melo)
o   Small tty_io cleanup(Arnaldo Carvalho de Melo)
o   Small isdn_tty cleanup  (Arnaldo Carvalho de Melo)
o   Expose scsi_add/del_timer for hosts
to adjust timeouts when they know better(Matthew Jacob)
o   Remove unneeded init of data(Xavier Bestel)
o   Remove unneeded init of data in wavfront(Xavier Bestel)
o   Remove unneeded init of data in sb  (Xavier Bestel)
o   Remove unneeded init of data in nm256   (Xavier Bestel)
o   Remove unneeded init of data in oss sound   (Xavier Bestel)
o   Remove unneeded init of data in cs4232  (Xavier Bestel)
o   Remove unneeded init of data in ultrastor   (Xavier Bestel)
o   Remove unneeded init of data in scsi/hosts.c(Xavier Bestel)
o   Remove unneeded init of data in i2o_core(Xavier Bestel)
o   Fix strange fs/exec.c error return  (Andrew Morton)
o   Remove unneeded init of data in mcd (Xavier Bestel)
o   Clean up belkin_sa ioctl code   (Arnaldo Carvalho de Melo)
o   Clean up ftdi_sio ioctl code(Arnaldo Carvalho de Melo)
o   Clean up mct_u232 ioctl code(Arnaldo Carvalho de Melo)
o   Tidy ircomm_tty_ioctl   (Arnaldo Carvalho de Melo)
o   Work around cypress cy723c693 RTC stability bug (Ivan Kokshaysky)
o   Clean up autofs user access slightly(Arnaldo Carvalho de Melo)
o   Small fs/exec.c clean ups   (Arnaldo Carvalho de Melo)
o   Fix eepro100 oops with power management (Marc Boucher)

2.4.5-ac22
o   Fix the remaining make xconfig mess (me)
o   Add APM disabling on DMI match  (me)
| Needed for the Trigem Delhi3 (aka E Machines E-Tower 333cs)
o   Fix pnpbios without hotplug (I hope)(me)
o   Merge an escaped via midi fixup (Adrian Cox)
o   Revert minixfs changes

2.4.5-ac21
o   Fix pnpbios compile failure and add docking (me)
station hotplug (/sbin/hotplug dock)
o   Fix make xconfig failure(Keith Owens)
o   Fix cciss pci device table   

[PATCH] ppp_generic.c - kfree(ppp) called twice, kernel 2.4.0

2001-07-03 Thread Eli Chen

Hi,

In ppp_destroy_interface(), there is a chance that kfree(ppp) is called
twice, causing a kernel oops when ppp is opened again.  I was able to cause
this by running PPPOE, and killing -9 pppd and pppoe-daemon with one kill
command.  By doing this, the closing of ppp->dev causes a
ppp_disconnect_channel(), which calls kfree(ppp) assuming the ppp unit is
dead.  But destroy_interface() hasn't finished, and it tries to kfree(ppp)
also.  I simply moved the closing of the device to after the channels == 0
check.  Anyways, follows is the patch.  Please cc comments to
[EMAIL PROTECTED]

thanks,
Eli Chen


--- ppp_generic.c 2001/02/21 00:53:01 1.1.1.2
+++ ppp_generic.c 2001/07/03 20:37:22
@@ -2268,13 +2268,6 @@
  ppp->dev = 0;
  ppp_unlock(ppp);

- if (dev) {
-  rtnl_lock();
-  dev_close(dev);
-  unregister_netdevice(dev);
-  rtnl_unlock();
- }
-
  /*
   * We can't acquire any new channels (since we have the
   * all_ppp_lock) so if n_channels is 0, we can free the
@@ -2283,6 +2276,13 @@
   */
  if (ppp->n_channels == 0)
   kfree(ppp);
+
+ if (dev) {
+  rtnl_lock();
+  dev_close(dev);
+  unregister_netdevice(dev);
+  rtnl_unlock();
+ }

  spin_unlock(_ppp_lock);
 }


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



2.2.19 kernel hang

2001-07-03 Thread Tim Peeler


Summary: 

   Kernel 2.2.19 hang [stuck on TLB IPI wait (CPU#0)]

Description:

   After recently upgrading the kernel on a production server to
   kernel 2.2.19 with the reiserfs patch and kernel-patch-2.2.19-ide
   from Andre Hendrick, the system became hung.  The server was
   responsive to ping but ssh and http service stopped working until
   we rebooted.  The hang did not happen instantly, but took several
   days of uptime before the system hung.  Looking through the logs
   we noticed that "stuck on TLB IPI wait (CPU#0) was logged 128 times
   in one second.  Also during that second, 4443 packets were rejected
   by the kernel coming in on eth0, of which 2681 were aimed at port
   137.  These packets came from 60 addresses not on our local network
   (packets destined to 137 on our local network are rejected, but not
   logged). Of other note was this kernel message: "dst cache overflow"
   "last message repeated 9 times".  Since this did not crash the
   machine, there is no oops output.  We were running the mon package
   from 3 other servers during this time and noticed shortly after
   the hang that several services were failing (ssh, http, etc). Even
   ping failed a few times.

Kernel Version:

   Linux version 2.2.19 (cjf@linux00) (gcc version 2.95.2 2220 
   (Debian GNU/Linux)) #1 SMP Tue Jun 26 11:55:50 EDT 2001

Output from ver_linux:

Linux www.fi.edu 2.2.19 #1 SMP Tue Jun 26 11:55:50 EDT 2001 i686 unknown
 
Gnu C  2.95.2
Gnu make   3.79.1
binutils   2.9.5.0.37
util-linux 2.10f
modutils   2.3.11
e2fsprogs  1.18
Linux C Library2.1.3
ldd: version 1.9.11
Procps 2.0.6
Net-tools  1.54
Console-tools  0.2.3
Sh-utils   2.0
Modules Loaded 


CPU Info:

processor   : 0
vendor_id   : GenuineIntel
cpu family  : 6
model   : 8
model name  : Pentium III (Coppermine)
stepping: 3
cpu MHz : 933.040
cache size  : 256 KB
fdiv_bug: no
hlt_bug : no
sep_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 3
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 psn mmx fxsr xmm
bogomips: 1854.66

processor   : 1
vendor_id   : GenuineIntel
cpu family  : 6
model   : 8
model name  : Pentium III (Coppermine)
stepping: 3
cpu MHz : 933.040
cache size  : 256 KB
fdiv_bug: no
hlt_bug : no
sep_bug : no
f00f_bug: no
coma_bug: no
fpu : yes
fpu_exception   : yes
cpuid level : 3
wp  : yes
flags   : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca
cmov pat pse36 psn mmx fxsr xmm
bogomips: 1861.22


SCSI Info:
Host: scsi0 Channel: 00 Id: 04 Lun: 00
  Vendor: ARCHIVE  Model: Python 04106-XXX Rev: 743B
  Type:   Sequential-AccessANSI SCSI revision: 02


Interrupts (/proc/interrupts):
   CPU0   CPU1   
  0:56749385598011IO-APIC-edge  timer
  1:  1  1IO-APIC-edge  keyboard
  2:  0  0  XT-PIC  cascade
  8:  0  1IO-APIC-edge  rtc
 10:18293101817099   IO-APIC-level  Mylex DAC960PTL1, eth0
 11: 18 18   IO-APIC-level  aic7xxx
 13:  1  0  XT-PIC  fpu
NMI:  0
ERR:  0


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: O_DIRECT! or O_DIRECT?

2001-07-03 Thread kernel

On Wed, 4 Jul 2001, Samium Gromoff wrote: 

> Maybe i`m missing the whole point, and thus i want to
> hear what other people will tell about it.

Several of us are working on it.

-ben

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: serial port O_SYNC functionality in 2.4.5

2001-07-03 Thread Stuart MacDonald

From: "James R Bruce" <[EMAIL PROTECTED]>
> The overall size of the circular buffer would have to be decreased
> too, but that's more of a hack to fix it now; Which I guess is what it
> comes to.

I see what you're saying; AFAIUnderstand, the low latency patches
bypass the circular buffer. Or make it size one.

> This is not really a problem; 16 bytes of hardware buffering I can
> live with; at 19200 baud this is 7ms of lag.  The 4096 byte software
> buffer causes 1706ms of lag; That *is* a problem.  It's a bit like the
> difference between a hard disk drive's local buffer and the OS's (much
> larger) buffering.  O_SYNC on a disk garuntees that the output has
> been flushed to the disk, but maybe not the physical medium.  On a
> serial port, similar functionality would be to have output to pushed
> to the UART, but maybe not yet over the actual port.

Gotchya.

> The manpage seems to imply this would work, but it doesn't seem to
> affect the software buffering at all (I tried this yesterday).  AFAICT
> from looking at the driver, the low_latency mode only applies to
> reading, not writing: tty_flip_buffer_push(tty) is the only place the
> latency flag is ever checked, and that is only called in receive_chars
> in serial.c.  The application that caused this doesn't get any serial
> input whatsoever, so that won't (or at least shouldn't) get called.

Hm. I haven't looked at the low_latency stuff, I was just repeating what
I'd heard...

> I changed WAKEUP_CHARS to 1 rather than 256 (0 would cause processes
> to hang forever, btw), and SERIAL_XMIT_SIZE to 16 rather than
> PAGE_SIZE.  A proper solution would make this conditional on O_SYNC or
> low_latency or even a kernel option.  Suggestions?

If you check the code, the circ buffer will never have a count < 0, so the
hang
is predictible; tty is never called for more tx chars.

I'd say it should be part of low_latency. Although it's probably best to
have
rx low_latency and tx low_latency separately configurable. Honouring O_SYNC
might not be a bad idea as well.

Whatever option probably should make SERIAL_XMIT_SIZE == WAKEUP_CHARS;
SERIAL needs to be a power of two, so 2, 4, 8 or 16 would be good choices.
Probably should be similar to the rx low_latency.

Best way to get this in the serial driver is to do some patches for it
and send them to Ted. :-)

..Stu


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



O_DIRECT! or O_DIRECT?

2001-07-03 Thread Samium Gromoff

HI folks, sometime ago i seen on lkml a post
from >< regarding the implementation of O_DIRECT.
 The thing about to care, is the fact, that *nobody*,
reacted on this post. It seems to me that nobody was
happy enough about this to tell "oh yes! at last!"

This is interesting, because one real advantage
of O_DIRECT are these greased weasel fast 15-20 Mb/s
file copies, which ones makes windoze users to look
on us as on lesser beings.

I understand, though, that this approach scales
bad in the terms of multithread loads, which ones are
especially important in server environments, the place
linux initially growed from, and that is why it wasn`t
already implemented.

One more problem i see here, and i think it is an
*extremely* important one, that making open( ... ,
BLA_BLA_BLA | O_DIRECT) is a thing some people may
overspeculate with. I mean that implementing O_DIRECT
in cp(1), wins the prize, but in the case of, say,
find(1) it is definitely not a wise move. The problem
may be determined as "poisoning" software with this
godblessed O_DIRECT, to the state, when 70% of code
on an average machine will use it, thus *completely*
killing the advantages of buffered access, and
suddenly *bang!*: the overall performance is died.

But the worst thing, is what the process of
poisoning is completely uncontrollable: each
stupid doodie can think, that His shitful piece of Code,
is Especially Important, ant that in his case O_DIRECT
is perfectly suitable. And in the case His code is
someway performance critical, then most likely O_DIRECT
will really improve his Code benchmarks, and that is
making things really awful, leading to the hell large
crowd of pig happy dudes thinking their useless code
is life critical, and thus dooming linux.

Maybe i`m stupid, as these potential dudes, and
painting things in too dark colors, but O_DIRECT,
i think, is a dangerous thing to play with.

That is why, i think, Linus as far as i can properly
recall, wasn`t happy with it et al.

Maybe i`m missing the whole point, and thus i want to
hear what other people will tell about it.


Cheers,

  Samium Gromoff
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



wait_event() problems

2001-07-03 Thread Richard B. Johnson


I have been trying to get the following to work:

atomic_t stop;
struct wait_queue wait_queue_stuff, another_wait_queue;
  /* Initialized before use with init_wait_queue() */

kernel_thread()
{
for(;;)
{
if(atomic_read(stop))
interruptible_sleep_on(_queue_stuff);
do_regular_stuff();
}
}

ioctl_start()
{
if(waitqueue_active(_queue_stuff))
{
atomic_set(, 0);
wake_up_interruptible(_queue_stuff);
}
}
ioctl_stop()
{
if(!waitqueue_active(_queue_stuff))
{
atomic_set(, 1);
wait_event(another_wait_queue, waitqueue_active(_queue_stuff));
}
}

The problem is that when ioctl_stop() is executed, the kernel thread
never gets any CPU time so it remains stuck in "D" state forever.

Maybe I'm doing something wrong, but something seems to be broken.
The following patch 'fixes' it.



--- linux-2.4.1/include/linux/sched.h.orig  Tue Jul  3 15:14:07 2001
+++ linux-2.4.1/include/linux/sched.h   Tue Jul  3 15:16:27 2001
@@ -763,6 +763,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);\
if (condition)  \
break;  \
+current->policy = SCHED_YIELD;  \
schedule(); \
}   \
current->state = TASK_RUNNING;  \


Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).

I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: serial port O_SYNC functionality in 2.4.5

2001-07-03 Thread James R Bruce


Re: serial port O_SYNC func.. by "Stuart MacDonald"@conne 
> From: "James R Bruce" <[EMAIL PROTECTED]>
> > As far as I can tell from observed operation and from perusing the
> > code, O_SYNC doesn't seem to be supported by the serial driver in
> > 2.4.5.  Writes are forced as far as the serial.c's circular queue, but
> > O_SYNC seems to be ignored from there on, so any application trying to
> > do small synchronous writes to the serial port will end up backing it
> > up PAGE_SIZE bytes rather than getting synchronous operation (which is
> > incidentally what I was trying to do when I ran into this :).
> >
> > I'm unfamiliar with the serial driver so I'm not sure the right way to
> > fix it is, but perhaps using a smaller value for WAKEUP_CHARS from
> > drivers/char/serial.c when the port is opened with O_SYNC
> > functionality might do the trick (i.e. 0 rather than 256).
>
> That might help, but it might not. That will only make sure that the
> tx circular buffer is empty before getting another byte from the tty
> layer into the buffer.

The overall size of the circular buffer would have to be decreased
too, but that's more of a hack to fix it now; Which I guess is what it
comes to.

> I think you will find that the real problem is that bytes written
> into the hardware go into the fifo, and there's no general way to
> tell when a byte has be actually txed; not in regular operation.

This is not really a problem; 16 bytes of hardware buffering I can
live with; at 19200 baud this is 7ms of lag.  The 4096 byte software
buffer causes 1706ms of lag; That *is* a problem.  It's a bit like the
difference between a hard disk drive's local buffer and the OS's (much
larger) buffering.  O_SYNC on a disk garuntees that the output has
been flushed to the disk, but maybe not the physical medium.  On a
serial port, similar functionality would be to have output to pushed
to the UART, but maybe not yet over the actual port.

> You want to run the port in polled mode, which ensures one byte is
> txed/rxed at a time. It's slow and cpu intensive though. setserial's
> man page might have some info on this, also known as "low latency";
> meaning a specific byte has a low period of time between being rxed
> and read/written and txed.

The manpage seems to imply this would work, but it doesn't seem to
affect the software buffering at all (I tried this yesterday).  AFAICT
from looking at the driver, the low_latency mode only applies to
reading, not writing: tty_flip_buffer_push(tty) is the only place the
latency flag is ever checked, and that is only called in receive_chars
in serial.c.  The application that caused this doesn't get any serial
input whatsoever, so that won't (or at least shouldn't) get called.

I changed WAKEUP_CHARS to 1 rather than 256 (0 would cause processes
to hang forever, btw), and SERIAL_XMIT_SIZE to 16 rather than
PAGE_SIZE.  A proper solution would make this conditional on O_SYNC or
low_latency or even a kernel option.  Suggestions?

 - Jim Bruce

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



eCos

2001-07-03 Thread Matthew M. DeLoera

Does anyone on the list use eCos (RedHat's embedded Linux)?

I'm having some build and other general problems, and I'd like to ask
someone about them off-list.

Thanks...
- Matt
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Linux HA FC based cluster

2001-07-03 Thread Gabriele Turchi

First of all my apologies: I know linux-kernel is not the better place to
post that mail, but trust me: is a little emercency for us.

We are (sigh... very urgently) looking for any available info about
succesfully running HA clusters based on Redhat Linux 6.2 (two systems
sharing a single storage device).

Our (customer) requirement is to use Kimberlite on two HP LH6000r servers.

Based on information found at oss.missioncriticallinux.com, we should evaluate
a Qlogin QLA2200 host adapter. Does someone have recent success report?

The customer owns an HP rack storage 12fc with HSSDC (copper) ports. Someone
tryied that setup? What other storage can be used?

Thanks a lot for any answer; please cc: also to me, I'm not subscribed.

Best wishes,
  
Gabriele Turchi

P.S.: I'm sorry, my english is alpha version...


-- 

 Gabriele Turchi (Responsabile Tecnico)[EMAIL PROTECTED]
 Tieffe Sistemi S.r.l.www.tieffesistemi.com
 V.le Piceno 21 - 20129 Milano - Italia tel/fax +39 02 76115215


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ACPI fundamental locking problems

2001-07-03 Thread Jeff Garzik

Other ACPI problems, that come with the increased potential for
malicious code:
- Much easier for NSA to snoop machine activity undetected (hello
paranoid people)
- Much easier to write worms and virii and similar

(it's much easier for someone malicious to patch an acpi table than bios
binary code.)

-- 
Jeff Garzik  | "I respect faith, but doubt is
Building 1024|  what gives you an education."
MandrakeSoft |   -- Wilson Mizner
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



RE: ACPI fundamental locking problems

2001-07-03 Thread Dave Jones

On Tue, 3 Jul 2001, Grover, Andrew wrote:

> We're depending on vendors (aka the BIOS) for all the ACPI tables, as well
> as every other piece of a priori data we need to boot the OS.

And this is the part that I find terrifying.
The minute we rely on BIOS vendors, they seem to find wonderful new
ways to screw things up royally.

> Could I please ask that you at least show me a system where this is a
> problem before throwing out all the work we've done on ACPI because of this
> technical nit?

Currently, with what we extract from BIOS space, we can
blacklist/whitelist according to DMI entries. With ACPI providing AML
code that's executed in kernel space, there's no telling what could
happen.

The whole "black box, you don't need to know how this works, just call it"
approach is scary. With ACPI having access to IDE taskfile commands, the
possibilities for all sorts of evil exist. Just when we thought the CPRM
nightmare was over, we have the BIOS feeding us IDE commands to throw
at drives with vendors telling us "Trust it, it's ok, really."

Maybe I'm overly paranoid, but I'm sure I'm not the only one who feels
this way.

regards,

Dave.

-- 
| Dave Jones.http://www.suse.de/~davej
| SuSE Labs

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ACPI fundamental locking problems

2001-07-03 Thread Alan Cox

> > That is the case here. The Global Lock is for synchronizing accesses between
> > the OS (that's us) and the firmware (SMI). Normal spinlocks are for intra-OS
> > locking. Here, we're synchronizing access with the BIOS. It's different.
> 
> I realize what the purpose of the global lock is...
> 
> How is the asm code in ACPI_ACQUIRE_GLOBAL_LOCK specific to interaction
> between OS and SMI?

Well lets take a look at the asm shall we

1.  It doesnt have a seperate loop when it fails to take the lock
polling it (See intels own docs on spin locks). You do read your
own publications ?

2.  It should be using rep nop  (See your own Intel PIV publications)

3.  Should be asm __volatile__ or gcc can move it

I am also somewhat puzzled about contexts here. What happens if you take
an IRQ during the global lock acquire and want to do ACPI. What happens
if you make a callback from the ACPI code - eg power management that itself
needs to call AML code ?

I am assuming the ACPI stuff has no IRQ level execution ability, but are you
sure ACPI never calls a single code path that can require an ACPI operation
from a callback - eg the PM layer ? Otherwise how can you be sure there won't
be any priority inversions between the bios/acpi locking set and the kernel 
locking set

> > All this code has been working for as long as I can remember.
> 
> ;-)  Under Windows?  Irrelevant.  Linux uses the hardware totally

Microsoft very early on in debugging Win2K problems ask people to use non
ACPI settings. 

> The difference with ACPI is that vendors can write code that is executed
> in the kernel's context (instead of what you can consider the BIOS's
> context).  That is a whole new can of worms.

For security reasons alone we need to ensure ACPI can be firmly in the off
position. Executing US written binary code in the Linux kernel will not be
acceptable to european corporations, non US military bodies and most 
Governments. They'd hate the US to get prior warning of say protestors
walking into their top secret menwith hill base playing the mission impossible
theme tune then chaining themselves to things..

And if the NSA wants the US goverment to execute binary only chinese bios code
on all their critical systems I am sure people will be happy.

> Look at the Linux boot sequence, which Randy Dunlap documented.  We
> collect as much information as is reasonable from BIOS at startup, so we
> won't have to talk to it again at runtime.

And we have customers who pointedly don't talk to the BIOS and kill SMI/SMM
early on...

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Kernel Module tracing.

2001-07-03 Thread Daniel Phillips

On Friday 29 June 2001 23:37, Tom spaziani wrote:
> I've recently been laboring over a kernel module that allows other
> kernel modules to send messages
> and tracing statements.  If anyone has any input on whether this would
> be a usefull thing or not
> please let me know. Here is a quick breakdown on how it works.
>
> Beware, this is only a BRIEF explaination.. I'll follow up with more
> details if anyone is intereasted.
>
> trace.o  <- Tracing module
> mymodule .o  <-  Client module
>
> 1: Load tracing module
> 2: Load a module that uses the tracing modules for reporting.
> a. the client module requests a certain number of reporting levels.
> b. the trace module creates a devFS entry for each of the requested
> reporting levels.
> ( /dev/trace/mymodule/mymodule0
>   mymodule1 ...
> )
> 3. Now the client module can send messages with a specific severity
> rating and have it set
> to the appropriate character file.
> 4. User space programs listening on each of the character files can do
> whatever, log the messages
> or perform tasks depending on the message.
> 5. When a client module is unloaded the devFS entries are removed and
> the user programs are also
> told to close the file.
>
> I am using the devFS filesystem because of the abilities to easily
> dynamically create new entries and
> remove them..  Currently devFS does not recycle Major and Minor numbers,
> but a co-worker of mine
> has created a patch to fix that.

I want this.  I've been thinking about it since your original post, and 
having just gone through a round of development involving massive amounts of 
kprint output (real time performance monitoring) I can say I'd prefer a more 
flexible way to do it, not to mention more efficient.  I'd like to have the 
option of leaving tracing code in some of my development projects all the 
time, just disabled until I say the magic word, then have it routed to a 
device as you describe.  Presumably you intend to use a ring buffer as printk 
does, simplified by the fact that you don't have to parse "level" information 
out of the string.  This will all be a lot more useful if it works from 
interrupts etc.

Perhaps you should also think about a non-devfs way of doing this, I don't 
know, it's a matter of taste.  Here's a Rube Goldbergesque way: when the 
client registers, export a dynamically allocated major number through proc 
and let the user mknod a device with that major.

Please cc me when you have something to try.

--
Daniel

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ACPI fundamental locking problems

2001-07-03 Thread Jeff Garzik

"Grover, Andrew" wrote:
> 
> > From: Jeff Garzik [mailto:[EMAIL PROTECTED]]
> > events/evxface.c:610:acpi_acquire_global_lock ->
> > events/evmisc.c:337:acpi_ev_acquire_global_lock ->
> > include/platform/acgcc.h:52:ACPI_ACQUIRE_GLOBAL_LOCK
> >
> > My immediate objections are,
> > (a) acgcc.h is re-implementing spinlocks in a non-standard,
> > non-portable, and expensive way, and (b) this entire code path is
> > incredibly expensive.
> 
> Well, when I look at other Linux code, I assume that if it does something
> weird, it does it for a reason.
> 
> That is the case here. The Global Lock is for synchronizing accesses between
> the OS (that's us) and the firmware (SMI). Normal spinlocks are for intra-OS
> locking. Here, we're synchronizing access with the BIOS. It's different.

I realize what the purpose of the global lock is...

How is the asm code in ACPI_ACQUIRE_GLOBAL_LOCK specific to interaction
between OS and SMI?


> All this code has been working for as long as I can remember.

;-)  Under Windows?  Irrelevant.  Linux uses the hardware totally
differently from Windows.
Under Linux?  You cannot come close to saying CONFIG_ACPI is used by a
large number of users...  I don't think that claim can really be made
yet.


> You mention twice that it is "expensive". Keeping in mind the 80-20 rule, in
> what way do you find this code costly?

Compare your x86 asm code with the spinlock asm code.  More importantly,
why is a spinlock or other kernel intrinsic avoided in acgcc.h?  It's
much less portable this way.


> > But my fundamental objection is,
> > we are depending on vendors to get locking right in their
> > ACPI tables.
> > And assume by some magic or design that said locking works
> > with whatever
> > unrelated kernel locking is going on.
> 
> By design, it works. We get to slipstream Windows a little here in that
> vendors need to have a working Global Lock interface to pass WHQL.

(1) A working lock interface does not imply that -users- of the lock
interface are correct
(2) Nobody here puts stock in Windows tests, which I'm assuming the WHQL
is.


> > It is my initial belief that a smaller info query interface that can
> > parse useful ACPI would be more effective.  For times like
> > suspend/resume where we would want to execute control methods, well,
> > there's always the disasm -> write-small-driver cycle.  Who knows if
> > this is a realistics proposed solution.  But it really scares me to
> > depend on vendors to get locking right.
> 
> We're depending on vendors (aka the BIOS) for all the ACPI tables, as well
> as every other piece of a priori data we need to boot the OS.

The difference with ACPI is that vendors can write code that is executed
in the kernel's context (instead of what you can consider the BIOS's
context).  That is a whole new can of worms.


> Could I please ask that you at least show me a system where this is a
> problem before throwing out all the work we've done on ACPI because of this
> technical nit?

ACPI is so new I do not think this is necessary.  I am reading straight
from the spec, the same thing system implementors will read.


Anyway, for the main point, which you missed:

The global lock is not ONLY for SMM type stuff.  The vendor can use it
in control methods all over the place.  And the vendor can just as
easily screw up it up.  I do not trust a bios vendor to get runtime OS
locking correct...  and that is -totally- different from trusting the
BIOS to provide us with a tiny bit of information.

Look at the Linux boot sequence, which Randy Dunlap documented.  We
collect as much information as is reasonable from BIOS at startup, so we
won't have to talk to it again at runtime.

Jeff


-- 
Jeff Garzik  | "I respect faith, but doubt is
Building 1024|  what gives you an education."
MandrakeSoft |   -- Wilson Mizner
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: include/asm-i386/checksum.h

2001-07-03 Thread Erik Meusel

Ok.

Sending dozens of patches today, I was asked if I could mail the whole
files, not only the patch and send it Cc'ed to you, Linus.

Here they are:
linux/include/asm-i386/checksum.h and
linux/include/asm-i386/floppy.h
both based on stable linux-2.4.5.

Well, have a lot of fun and thanks in advance!

mfg, Erik


#ifndef _I386_CHECKSUM_H
#define _I386_CHECKSUM_H


/*
 * computes the checksum of a memory block at buff, length len,
 * and adds in "sum" (32-bit)
 *
 * returns a 32-bit number suitable for feeding into itself
 * or csum_tcpudp_magic
 *
 * this function must be called with even lengths, except
 * for the last fragment, which may be odd
 *
 * it's best to have buff aligned on a 32-bit boundary
 */
asmlinkage unsigned int csum_partial(const unsigned char * buff, int len, unsigned int sum);

/*
 * the same as csum_partial, but copies from src while it
 * checksums, and handles user-space pointer exceptions correctly, when needed.
 *
 * here even more important to align src and dst on a 32-bit (or even
 * better 64-bit) boundary
 */

asmlinkage unsigned int csum_partial_copy_generic( const char *src, char *dst, int len, int sum,
		   int *src_err_ptr, int *dst_err_ptr);

/*
 *	Note: when you get a NULL pointer exception here this means someone
 *	passed in an incorrect kernel address to one of these functions. 
 *	
 *	If you use these functions directly please don't forget the 
 *	verify_area().
 */
extern __inline__
unsigned int csum_partial_copy_nocheck ( const char *src, char *dst,
	int len, int sum)
{
	return csum_partial_copy_generic ( src, dst, len, sum, NULL, NULL);
}

extern __inline__
unsigned int csum_partial_copy_from_user ( const char *src, char *dst,
		int len, int sum, int *err_ptr)
{
	return csum_partial_copy_generic ( src, dst, len, sum, err_ptr, NULL);
}

/*
 * These are the old (and unsafe) way of doing checksums, a warning message will be
 * printed if they are used and an exeption occurs.
 *
 * these functions should go away after some time.
 */

#define csum_partial_copy_fromuser csum_partial_copy
unsigned int csum_partial_copy( const char *src, char *dst, int len, int sum);

/*
 *	This is a version of ip_compute_csum() optimized for IP headers,
 *	which always checksum on 4 octet boundaries.
 *
 *	By Jorge Cwik <[EMAIL PROTECTED]>, adapted for linux by
 *	Arnt Gulbrandsen.
 */
static inline unsigned short ip_fast_csum(unsigned char * iph,
	  unsigned int ihl) {
	unsigned int sum;

	__asm__ __volatile__("\
	movl (%1), %0 \
	subl $4, %2 \
	jbe 2f \
	addl 4(%1), %0 \
	adcl 8(%1), %0 \
	adcl 12(%1), %0 \
1:	adcl 16(%1), %0 \
	lea 4(%1), %1 \
	decl %2 \
	jne	1b \
	adcl $0, %0 \
	movl %0, %2 \
	shrl $16, %0 \
	addw %w2, %w0 \
	adcl $0, %0 \
	notl %0 \
2: \
	"
	/* Since the input registers which are loaded with iph and ipl
	   are modified, we must also specify them as outputs, or gcc
	   will assume they contain their original values. */
	: "=r" (sum), "=r" (iph), "=r" (ihl)
	: "1" (iph), "2" (ihl));
	return(sum);
}

/*
 *	Fold a partial checksum
 */

static inline unsigned int csum_fold(unsigned int sum)
{
	__asm__("\
		addl %1, %0 \
		adcl $0x, %0 \
		"
		: "=r" (sum)
		: "r" (sum << 16), "0" (sum & 0x)
	);
	return (~sum) >> 16;
}
 
static inline unsigned long csum_tcpudp_nofold(unsigned long saddr,
		   unsigned long daddr,
		   unsigned short len,
		   unsigned short proto,
		   unsigned int sum) 
{
__asm__("\
	addl %1, %0 \
	adcl %2, %0 \
	adcl %3, %0 \
	adcl $0, %0 \
	"
	: "=r" (sum)
	: "g" (daddr), "g"(saddr), "g"((ntohs(len)<<16)+proto*256), "0"(sum));
return sum;
}

/*
 * computes the checksum of the TCP/UDP pseudo-header
 * returns a 16-bit checksum, already complemented
 */
static inline unsigned short int csum_tcpudp_magic(unsigned long saddr,
		   unsigned long daddr,
		   unsigned short len,
		   unsigned short proto,
		   unsigned int sum) 
{
	return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
}

/*
 * this routine is used for miscellaneous IP-like checksums, mainly
 * in icmp.c
 */

static inline unsigned short ip_compute_csum(unsigned char * buff, int len) {
return csum_fold (csum_partial(buff, len, 0));
}

#define _HAVE_ARCH_IPV6_CSUM
static __inline__ unsigned short int csum_ipv6_magic(struct in6_addr *saddr,
		 struct in6_addr *daddr,
		 __u32 len,
		 unsigned short proto,
		 unsigned int sum) 
{
	__asm__("\
		addl 0(%1), %0 \
		adcl 4(%1), %0 \
		adcl 8(%1), %0 \
		adcl 12(%1), %0 \
		adcl 0(%2), %0 \
		adcl 4(%2), %0 \
		adcl 8(%2), %0 \
		adcl 12(%2), %0 \
		adcl %3, %0 \
		adcl %4, %0 \
		adcl $0, %0 \
		"
		: "=" (sum)
		: "r" (saddr), "r" (daddr), 
		  "r"(htonl(len)), "r"(htonl(proto)), "0"(sum));


Re: ACPI fundamental locking problems

2001-07-03 Thread Johannes Erdfelt

On Tue, Jul 03, 2001, Jeff Garzik <[EMAIL PROTECTED]> wrote:
> I was reading through the ACPI spec, to see what was required to obtain
> the IRQ routing table from AML.

FWIW, ia64 already does this, if you're looking for the code to do it.

JE

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: pte_val(*pte) as lvalue

2001-07-03 Thread Russell King

On Tue, Jul 03, 2001 at 01:50:05PM -0500, Timur Tabi wrote:
> Russell King wrote:
> >Can I ask what the nature of the PTE modification is, and where you
> >are making this modification?
> >
> I've written a hack which enables PAT (Page Address Translation) for a 
> particular page:

Firstly, I'll say I'm no x86 expert by any means.  However, it may be
better to extend the pte bit handling functions in
include/asm-i386/pgtable.h to include the bits you need to handle.
(eg, see how pte_mkwrite and pte_wrprotect are implemented.)  This is
probably the cleanest way of handling these bits.

--
Russell King ([EMAIL PROTECTED])The developer of ARM Linux
 http://www.arm.linux.org.uk/personal/aboutme.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ACPI fundamental locking problems

2001-07-03 Thread Alan Cox

> We're depending on vendors (aka the BIOS) for all the ACPI tables, as well
> as every other piece of a priori data we need to boot the OS.

They have had enough problems getting simpler API's right. The ACPI spec is
bloated, complex, and very hard to follow - and its written in my native
language. I really do not envy a random BIOS writers task.

> Could I please ask that you at least show me a system where this is a
> problem before throwing out all the work we've done on ACPI because of this
> technical nit?

The goal isnt a technical nit, its to avoid loading 300Kbytes of crud (which 
should mostly be in user space anyway) on the 99.9% of machines where we dont
need it.

The user space thing isnt an idle comment btw, its something that I think we
should actively pursue for 2.5. By making better use of initrd and the clean
ramfsroot stuff Al wants to do we can push a lot of stuff (bootp, dhcp, 
dmi based configuration fixups, acpi) almost entirely into user space.
That makes me a lot lot happier.

The fact that it takes more code to parse and interpret ACPI than it does to
route traffic on the internet backbones should be a hint something is badly
wrong either in ACPI the spec, ACPI the implenentation or both.

Reading the code I can find some examples of pointless code bloat, but not
enough to convince me the broken part isnt the spec.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



RE: ACPI fundamental locking problems

2001-07-03 Thread Grover, Andrew

> From: Jeff Garzik [mailto:[EMAIL PROTECTED]]
> events/evxface.c:610:acpi_acquire_global_lock ->
> events/evmisc.c:337:acpi_ev_acquire_global_lock ->
> include/platform/acgcc.h:52:ACPI_ACQUIRE_GLOBAL_LOCK
> 
> My immediate objections are,
> (a) acgcc.h is re-implementing spinlocks in a non-standard,
> non-portable, and expensive way, and (b) this entire code path is
> incredibly expensive.

Well, when I look at other Linux code, I assume that if it does something
weird, it does it for a reason.

That is the case here. The Global Lock is for synchronizing accesses between
the OS (that's us) and the firmware (SMI). Normal spinlocks are for intra-OS
locking. Here, we're synchronizing access with the BIOS. It's different.

All this code has been working for as long as I can remember.

You mention twice that it is "expensive". Keeping in mind the 80-20 rule, in
what way do you find this code costly?

> But my fundamental objection is,
> we are depending on vendors to get locking right in their 
> ACPI tables. 
> And assume by some magic or design that said locking works 
> with whatever
> unrelated kernel locking is going on.

By design, it works. We get to slipstream Windows a little here in that
vendors need to have a working Global Lock interface to pass WHQL.

> It is my initial belief that a smaller info query interface that can
> parse useful ACPI would be more effective.  For times like
> suspend/resume where we would want to execute control methods, well,
> there's always the disasm -> write-small-driver cycle.  Who knows if
> this is a realistics proposed solution.  But it really scares me to
> depend on vendors to get locking right.

We're depending on vendors (aka the BIOS) for all the ACPI tables, as well
as every other piece of a priori data we need to boot the OS.

Could I please ask that you at least show me a system where this is a
problem before throwing out all the work we've done on ACPI because of this
technical nit?

Thanks -- Regards -- Andy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Strange thread behaviour on 8-way x86 machine

2001-07-03 Thread Mike Kravetz

On Tue, Jul 03, 2001 at 12:25:12PM -0600, Sasha Pachev wrote:
> Hi,
> 
> I have observed a rather strange behaviour doing a multi-threaded CPU 
> benchmark on an 8-way machine running 2.4.2 SMP kernel. Even when the 
> priority is reniced to the highest possible value, I am still unable to reach 
> more than 50% CPU utilization. My benchmark just creates a bunch of threads 
> with pthread_create(), and then runs a simple integer computation in each 
> thread. On a dual with 2.4.3 kernel, and a 4-way with 2.4.2 kernel, I am able 
> to reach full CPU utilization. 

I haven't had any problem fully utilizing 8 CPUs on 2.4.* kernels.  This
may seem obvious, but do you have more than 4 CPUs worth of work for the
system to do?  What is the runqueue length during this benchmark?

-- 
Mike Kravetz [EMAIL PROTECTED]
IBM Linux Technology Center
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: pte_val(*pte) as lvalue

2001-07-03 Thread Timur Tabi

Russell King wrote:

>Can I ask what the nature of the PTE modification is, and where you
>are making this modification?
>
I've written a hack which enables PAT (Page Address Translation) for a 
particular page:

void set_pte_pat(pte_t *pte, unsigned long pat_index)
{
unsigned long p = pte_val(*pte);

p &= ~(_PAGE_PROTNONE | _PAGE_PCD | _PAGE_PWT);// zero-out the 
relevant bits

if (pat_index & 4)
p |= _PAGE_PROTNONE;

if (pat_index & 2)
p |= _PAGE_PCD;

if (pat_index & 1)
p |= _PAGE_PWT;

#if CONFIG_X86_PAE
pte->pte_high = 0;
pte->pte_low = p;
#else
pte_val(*pte) = p;
#endif

-- 
Timur Tabi
Interactive Silicon



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



PROBLEM: memory allocation error with token ring tms380/abyss modules[follow-up]

2001-07-03 Thread Brian McEntire

Hello, I got a few responses to this original problem... thanks! I've
compiled the abyss.o and tms380 token ring drivers into the kernel as
opposed to running them as modules. Yesterday the system crashed again and
I copied down all the Oops stuff and ran it through ksymoops... I'm
including the output from that in this e-mail. I hope it is useful to
the maintainer of the tms380 code and maybe the abyss code!

BTW, Adam Fritzler is listed as the tms380 maintainer,
but his e-mail address, listed as [EMAIL PROTECTED], is failing and the URL
listed -- http://www.auk.cx/tms380tr/ -- also fails.

Output from ksymoops, all other information in the original e-mail still
applies:

[root@ohdrouter /root]# ksymoops oops.7.2.2001
ksymoops 0.7c on i686 2.4.5.  Options used
 -V (default)
 -k /proc/ksyms (default)
 -l /proc/modules (default)
 -o /lib/modules/2.4.5/ (default)
 -m /usr/src/linux/System.map (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Warning (compare_maps): ksyms_base symbol
__VERSIONED_SYMBOL(shmem_file_setup) not found in System.map.  Ignoring
ksyms_base entry
Oops: 0002
CPU: 0
EIP: 0010:[]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010046
eax:  ebx: c391ede0 ecx: 0246 edx: c02a7080
esi: 0292 edi:  ebp: c000b5c8 esp: c0245f10
ds: 0018 es: 0018 ss: 0018
Process swapper (pid:0, stackpage=c0245000)
Stack: c391ede0 c0292010 0001 c019092d c391ede0 c391ede0 c114a40
000a
c114a400 000a c0008000 000a 0040 c0008000 c018f124 c114a400
c114a400 c1128b40 0401 000c c0245fac c0107dad 000c c114a400
Call Trace: [] [] [] []
[]
[] [] [] [] []
[]
[] [] []
Code: ff 80 24 00 00 00 82 42 0c 89 43 08 ff 40 08 8b 50 04 89 03

>>EIP; c01afd48<=
Trace; c019092d 
Trace; c018f124 
Trace; c0107dad 
Trace; c0107f17 
Trace; c0105170 
Trace; c0105170 
Trace; c0106b98 
Trace; c0105170 
Trace; c0105170 
Trace; c0100018 
Trace; c0105193 
Trace; c01051f4 
Trace; c0105000 
Trace; c0100197 
Code;  c01afd48 
 <_EIP>:
Code;  c01afd48<=
   0:   ff 80 24 00 00 00 incl   0x24(%eax)   <=
Code;  c01afd4e 
   6:   82(bad)
Code;  c01afd4f 
   7:   42inc%edx
Code;  c01afd50 
   8:   0c 89 or $0x89,%al
Code;  c01afd52 
   a:   43inc%ebx
Code;  c01afd53 
   b:   08 ff or %bh,%bh
Code;  c01afd55 
   d:   40inc%eax
Code;  c01afd56 
   e:   08 8b 50 04 89 03 or %cl,0x3890450(%ebx)


2 warnings issued.  Results may not be reliable.

I hope this is useful to the maintainer(s)!

Please let me know if there is anything I can do to help.

Thank you,
  Brian


On Tue, 19 Jun 2001, Brian McEntire wrote:

> [1.] memory allocation error with token ring tms380/abyss modules
>
> [2.] a memory allocation error causes the system to go into an infinite
> loop about once every week or two. This most recent time was 8 days, to
> the hour from the last crash. Everything on the system stops working and I
> need to hit the reset button to reboot the system. At crash time, the
> following message scrolls up the screen:
>
> __alloc_pages: 1-order allocation failed
>
> * Actually, I did some searching on the web and found this problem
> discussed but not fixed. According to one e-mail, I patched
> mm/page_alloc.c and rebuilt the kernel so that I could get the following
> _slightly_ more informative message after the crash:
>
> __alloc_pages: 1-order allocation failed from c01290e8
>
> The modification I made to mm/page_alloc.c is:
> change the line:
>
> printk(KERN_ERR "__alloc_pages: %lu-order allocation failed.\n", order);
>
> to:
>
> printk(KERN_ERR "__alloc_pages: %lu-order allocation failed from %p\n",
>   order, __builtin_return_address(0));
>
> Then I'm supposed to be able to look up the hex code from the error
> message in the /boot/System.map (it is the correct one for my kernel) and
> find out what function is causing the problem.
>
> But, I don't find c01290e8 in my System.map. Two hex addresses close to it
> are found there:
>
> c01290d4 T __get_free_pages
> c01290f4 T get_zeroed_page
>
> Yup, looks like it has something to do with memory allocation alright ;-)
>
> Everytime this crash occurs, it is the same hex address given in the error
> message. I can't cause this error to occur. The system is running as a
> basic router and has two Netgear FA310TX ethernet cards in it and one
> Madge Smart 16/4 PCI Ringnode Mk2 token ring card in it.
>
> The system logs don't give any indication that the crash 

Re: pte_val(*pte) as lvalue

2001-07-03 Thread Russell King

On Tue, Jul 03, 2001 at 01:32:36PM -0500, Timur Tabi wrote:
> ** Reply to message from Andi Kleen <[EMAIL PROTECTED]> on 03 Jul 2001 01:33:42 +0200
> > set_pte(pte, mk_pte( ... )) 
> 
> I'm not sure how to use mk_pte.  The first parameter is a struct page *,
> which I don't have.  All I'm doing is modifying the PTE value.  I don't
> want to "make" another one.

set_pte is the only way you can guarantee that the architecture
implementation gets to do what it needs to do with the PTE value
before stuffing it into the PTE tables.

Can I ask what the nature of the PTE modification is, and where you
are making this modification?

--
Russell King ([EMAIL PROTECTED])The developer of ARM Linux
 http://www.arm.linux.org.uk/personal/aboutme.html

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: pte_val(*pte) as lvalue

2001-07-03 Thread Timur Tabi

** Reply to message from Andi Kleen <[EMAIL PROTECTED]> on 03 Jul 2001 01:33:42 +0200

> Timur Tabi <[EMAIL PROTECTED]> writes:
> 
> > 
> > What is the accepted way to assign an integer to a pte that works in 2.2 and
> > 2.4?
> 
> set_pte(pte, mk_pte( ... )) 

I'm not sure how to use mk_pte.  The first parameter is a struct page *, which
I don't have.  All I'm doing is modifying the PTE value.  I don't want to "make"
another one.


-- 
Timur Tabi - [EMAIL PROTECTED]
Interactive Silicon - http://www.interactivesi.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Strange thread behaviour on 8-way x86 machine

2001-07-03 Thread Sasha Pachev

Hi,

I have observed a rather strange behaviour doing a multi-threaded CPU 
benchmark on an 8-way machine running 2.4.2 SMP kernel. Even when the 
priority is reniced to the highest possible value, I am still unable to reach 
more than 50% CPU utilization. My benchmark just creates a bunch of threads 
with pthread_create(), and then runs a simple integer computation in each 
thread. On a dual with 2.4.3 kernel, and a 4-way with 2.4.2 kernel, I am able 
to reach full CPU utilization. 

At first glance, it appears to be like some overzealous fairness problem in 
the scheduler that is exhibited only when you have more than 4 CPUs. Before I 
start scrutinizing the source trying to understand the inner workings of the 
scheduler, I would like to get some feedback from people that know something 
about the subject. Any ideas/suggestions would be appreciated.

-- 
MySQL Development Team
For technical support contracts, visit https://order.mysql.com/
   __  ___ ___   __ 
  /  |/  /_ __/ __/ __ \/ /   Sasha Pachev <[EMAIL PROTECTED]>
 / /|_/ / // /\ \/ /_/ / /__  MySQL AB, http://www.mysql.com/
/_/  /_/\_, /___/\___\_\___/  Provo, Utah, USA
   <___/  
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: VM Requirement Document - v0.0

2001-07-03 Thread Daniel Phillips

On Monday 02 July 2001 20:42, Rik van Riel wrote:
> On Thu, 28 Jun 2001, Marco Colombo wrote:
> > I'm not sure that, in general, recent pages with only one access are
> > still better eviction candidates compared to 8 hours old pages. Here
> > we need either another way to detect one-shot activity (like the one
> > performed by updatedb),
>
> Fully agreed, but there is one problem with this idea.
> Suppose you have a maximum of 20% of your RAM for these
> "one-shot" things, now how are you going to be able to
> page in an application with a working set of, say, 25%
> the size of RAM ?

Easy.  What's the definition of working set?  Those pages that are frequently 
referenced.  So as the application starts up some of its pages will get 
promoted from used-once to used-often.  (On the other hand, the target 
behavior here conflicts with the goal of grouping together several 
temporally-related accesses to the same page together as one access, so 
there's a subtle distinction to be made here, see below.)

The point here is that there are such things as run-once program pages, just 
as there are use-once file pages.  Both should get low priority and be 
evicted early, regardless of the fact they were just loaded.

> If you don't have any special measures, the pages from
> this "new" application will always be treated as one-shot
> pages and the process will never be able to be cached in
> memory completely...

The self-balancing way of doing this is to promote pages from the old end of 
the used-once list to the used-often (active) list at a rate corresponding to 
the fault-in rate so we get more aggressive promotion of referenced-often 
pages during program loading, and conversely, aggressive demotion of 
referenced-once pages.

--
Daniel

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: VM Requirement Document - v0.0

2001-07-03 Thread Daniel Phillips

An ammendment to my previous post...

> I see three page priority levels:
>
>   0 - accessed-never/aged to zero
>   1 - accessed-once/just loaded
>   2 - accessed-often
>
> with these transitions:
>
>   0 -> 1, if a page is accessed
>   1 -> 2, if a page is accessed a second time
>   1 -> 0, if a page gets old
>   2 -> 0, if a page gets old

Better:

   1 -> 0, if a page was not referenced before arriving at the old end
   1 -> 2, if it was

Meaning that multiple accesses to pages on the level 1 list are treated as a 
single access.  In addition, this reflects what we can do practically with 
the hardware referenced bit.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ufs on linux question/problem

2001-07-03 Thread Admin Mailing Lists



> 
> You need support of Solaris disklabels.

isn't that what CONFIG_SOLARIS_X86_PARTITION is?

> And UFS patches that are in
> -ac. Then you can get more or less safe r/o mounts. r/w is hopeless
> at that stage.

that's ok, i only need to read.

-Tony
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.
Anthony J. Biacco   Network Administrator/Engineer
[EMAIL PROTECTED]   Intergrafix Internet Services

"Dream as if you'll live forever, live as if you'll die today"
http://www.asteroid-b612.orghttp://www.intergrafix.net
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: linux-2.4.6-pre8/drivers/mtd/nand/spia.c: undefined symbols

2001-07-03 Thread Steven J. Hill

Alan Cox wrote:
> 
> > The way that I architected the raw NAND flash device driver was to
> > break it into 2 parts. 'nand.c' contains the actual driver code and
> > is considered to be device independent. 'spia.c' is the device
> > dependent part. You should write your own version of 'spia.c' and
> 
> So the Config.in is wrong since I can select spia on x86
> 
Indeed. That should be fixed now with this patch. Now onto the stuff
for ESR.

-Steve

-- 
 Steven J. Hill - Embedded SW Engineer
 spia.diff


Regrding module programing

2001-07-03 Thread siva kumar

Hi all,

I like to know whether the kernel modules concepts is
present only in linux (or) it is also supported in 
some other flavour of unix operating systems. 
Can any one please update me, regarding this ?

Thanks,
siva


__
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail
http://personal.mail.yahoo.com/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



ACPI fundamental locking problems

2001-07-03 Thread Jeff Garzik

I used to be pretty excited about ACPI, until today.

I was reading through the ACPI spec, to see what was required to obtain
the IRQ routing table from AML.  Continued reading... until I hit a
section talking about the ACPI global lock.

events/evxface.c:610:acpi_acquire_global_lock ->
events/evmisc.c:337:acpi_ev_acquire_global_lock ->
include/platform/acgcc.h:52:ACPI_ACQUIRE_GLOBAL_LOCK

My immediate objections are,
(a) acgcc.h is re-implementing spinlocks in a non-standard,
non-portable, and expensive way, and (b) this entire code path is
incredibly expensive.

But my fundamental objection is,
we are depending on vendors to get locking right in their ACPI tables. 
And assume by some magic or design that said locking works with whatever
unrelated kernel locking is going on.

It is my initial belief that a smaller info query interface that can
parse useful ACPI would be more effective.  For times like
suspend/resume where we would want to execute control methods, well,
there's always the disasm -> write-small-driver cycle.  Who knows if
this is a realistics proposed solution.  But it really scares me to
depend on vendors to get locking right.

We'll see what 2.5 will bring...



-- 
Jeff Garzik  | "I respect faith, but doubt is
Building 1024|  what gives you an education."
MandrakeSoft |   -- Wilson Mizner
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: mmap

2001-07-03 Thread Jens Axboe

On Mon, Jul 02 2001, [EMAIL PROTECTED] wrote:
> [1] IMHO it would be more useful if iobufs would use a scatterlist
> instead of an struct page* array.

No that would be horrible, at least with the current scatterlist. A page
based scatterlist would be alright though -- but this boils down to the
per-page offset debate again.

-- 
Jens Axboe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread Eric S. Raymond

David Woodhouse <[EMAIL PROTECTED]>:
> Upon further investigation, it seems I was mistaken. I apologise for my tone.

Accepted.  I wish more people had the grace you do, to apologize when you know 
you've been mistaken or unfair; it would make this list a better place.

> Momenco Ocelot boot flash device
> CONFIG_MTD_OCELOT
>   This enables access routines for the boot flash device and for the 
>   NVRAM on the Momenco Ocelot board. If you have one of these boards
>   and would like access to either of these, say 'Y'.

Incorporated.  I have also received mail from someone who can fill in the
new MIPS entries, so initial results from the posting are quite good.
-- 
http://www.tuxedo.org/~esr/;>Eric S. Raymond

The direct use of physical force is so poor a solution to the problem of
limited resources that it is commonly employed only by small children and
great nations.
-- David Friedman
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread David Woodhouse


[EMAIL PROTECTED] said:
>  I put the symbols we discussed previously on my ignore list.  What's
> your beef this time?

It looked like you were again reporting config symbols which the user can't
be asked about - because they're only there as dependencies or as ifdefs in
the code, rather than as selectable options.

Upon further investigation, it seems I was mistaken. I apologise for my tone.

In fact, it seems that a lot of MIPS code has been merged into -pre9, and 
those options _are_ now selectable, rather than just being there as 
dependencies for some of my code. 

CONFIG_MTD_OCELOT is mine and I thought I'd already submitted help text for
it - evidently I'd missed it but because its dependencies were unselectable
your scripts weren't noticing it:

Momenco Ocelot boot flash device
CONFIG_MTD_OCELOT
  This enables access routines for the boot flash device and for the 
  NVRAM on the Momenco Ocelot board. If you have one of these boards
  and would like access to either of these, say 'Y'.


--
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: ufs on linux question/problem

2001-07-03 Thread Alexander Viro



On Tue, 3 Jul 2001, Admin Mailing Lists wrote:

> 
> Trying to mount a solaris x86 drive under linux.
> kernel 2.4.5, ufs support and x86 partition support compiled in (no
> module)
> On boot, linux recognizes the drive, but shows no solaris partitions on
> it.
> Below, linux drive is hda, solaris is hdb.

You need support of Solaris disklabels. And UFS patches that are in
-ac. Then you can get more or less safe r/o mounts. r/w is hopeless
at that stage.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Patch for IDE hang after resetting quirk drive

2001-07-03 Thread Dale Farnsworth

I have a Promise PDC20265 ide controller with one of the "quirk" drives,
a Quantum Fireballp LM30.  That drive has a bad sector and accessing
it would result in a DMA timeout.  Unfortunately, after the IDE driver
resets the controller, the drive never responded.

The following patch appears to correct the problem.  It duplicates
the workaround for "quirky" drives found in ide-features.c

-Dale

Dale Farnsworth [EMAIL PROTECTED]

--- oldlinux-2.4.5/drivers/ide/ide.cTue Jul  3 09:35:57 2001
+++ linux-2.4.5/drivers/ide/ide.c   Tue Jul  3 09:23:58 2001
@@ -758,7 +758,10 @@
 */
OUT_BYTE(drive->ctl|6,IDE_CONTROL_REG); /* set SRST and nIEN */
udelay(10); /* more than enough time */
-   OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST, leave nIEN */
+   if (drive->quirk_list == 2)
+   OUT_BYTE(drive->ctl, IDE_CONTROL_REG); /* clear SRST and nIEN */
+   else
+   OUT_BYTE(drive->ctl|2,IDE_CONTROL_REG); /* clear SRST only */
udelay(10); /* more than enough time */
hwgroup->poll_timeout = jiffies + WAIT_WORSTCASE;
ide_set_handler (drive, _pollfunc, HZ/20, NULL);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread M. R. Brown

* Eric S. Raymond <[EMAIL PROTECTED]> on Tue, Jul 03, 2001:

> According to my cross-reference generator, the following symbols have
> missing help in 2.4.6-pre9:
> 
[...]
> CONFIG_MAPLE
> CONFIG_MAPLE_KEYBOARD
> CONFIG_MAPLE_MOUSE

These three are for the Dreamcast driver port.  I can write help entries
for them, but I don't think NIIBE has sent SuperH updates in awhile, the
only missing symbol is CONFIG_INPUT_MAPLE_CONTROL, I'll write that one as
well.

M. R.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Removal of PG_marker scheme from 2.4.6-pre

2001-07-03 Thread Marcelo Tosatti



On Sun, 1 Jul 2001, Rik van Riel wrote:

> On Sat, 30 Jun 2001, Marcelo Tosatti wrote:
> 
> > In pre7:
> >
> > "me: undo page_launder() LRU changes, they have nasty side effects"
> >
> > Can you be more verbose about this ?
> 
> I think this was fixed by the GFP_BUFFER vs. GFP_CAN_FS + GFP_CAN_IO
> thing and Linus accidentally backed out the wrong code ;)
> 
> cheers,
> Rik

Nope.

-ac also freezes and it does not have the GFP_BUFFER changes. 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



ufs on linux question/problem

2001-07-03 Thread Admin Mailing Lists


Trying to mount a solaris x86 drive under linux.
kernel 2.4.5, ufs support and x86 partition support compiled in (no
module)
On boot, linux recognizes the drive, but shows no solaris partitions on
it.
Below, linux drive is hda, solaris is hdb.

Jul  2 19:57:56 stevenjude2 kernel: PIIX4: chipset revision 2
Jul  2 19:57:56 stevenjude2 kernel: PIIX4: not 100%% native mode: will
probe irqs later
Jul  2 19:57:56 stevenjude2 kernel: ide0: BM-DMA at 0xffa0-0xffa7,
BIOS settings: hda:DMA, hdb:pio
Jul  2 19:57:56 stevenjude2 kernel: ide1: BM-DMA at 0xffa8-0xffaf,
BIOS settings: hdc:DMA, hdd:pio
Jul  2 19:57:56 stevenjude2 kernel: hda: WDC AC26400B, ATA DISK drive
Jul  2 19:57:56 stevenjude2 kernel: hdb: QUANTUM FIREBALL ST3.2A, ATA DISK
driveJul  2 19:57:56 stevenjude2 kernel: hdc: SAMSUNG SC-140B, ATAPI
CD/DVD-ROM driveJul  2 19:57:56 stevenjude2 kernel: ide0 at
0x1f0-0x1f7,0x3f6 on irq 14
Jul  2 19:57:56 stevenjude2 kernel: ide1 at 0x170-0x177,0x376 on irq 15
Jul  2 19:57:56 stevenjude2 kernel: hda: 12594960 sectors (6449 MB)
w/512KiB Cache, CHS=784/255/63, UDMA(33)
Jul  2 19:57:56 stevenjude2 kernel: hdb: 6306048 sectors (3229 MB) w/81KiB
Cache, CHS=6256/16/63, UDMA(33)
Jul  2 19:57:56 stevenjude2 kernel: Partition check:
Jul  2 19:57:56 stevenjude2 kernel:  hda: hda1 hda2 hda3 < hda5 >
Jul  2 19:57:56 stevenjude2 kernel:  hdb:


Tried to mount from the command line with:
mount -r -t ufs -o ufstype=sunx86,ro /dev/hdb /mnt
mount -r -t ufs -o ufstype=sunx86,ro /dev/hdb1 /mnt
All failed.

Only relevant log message i saw was:
Jul  2 22:04:02 stevenjude2 kernel: ufs_read_super: bad magic number

a fdisk on /dev/hdb shows no partitions. could the drive or partitions be
corrupted or something? if so, is data salvage likely?

Thanx,

-Tony
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.
Anthony J. Biacco   Network Administrator/Engineer
[EMAIL PROTECTED]   Intergrafix Internet Services

"Dream as if you'll live forever, live as if you'll die today"
http://www.asteroid-b612.orghttp://www.intergrafix.net
.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-._.-.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread Eric S. Raymond

Steven J. Hill <[EMAIL PROTECTED]>:
> I can fill in the blanks on all of these for you. I won't clutter
> up the mailing list with the complete descriptions.

That would be excellent.  Please do!
-- 
http://www.tuxedo.org/~esr/;>Eric S. Raymond

The spirit of resistance to government is so valuable on certain occasions, 
that I wish it always to be kept alive.  It will often be exercised when 
wrong, but better so than not to be exercised at all. I like a little 
rebellion now and then. -- Thomas Jefferson, letter to Abigail Adams, 1787
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread Eric S. Raymond

David Woodhouse <[EMAIL PROTECTED]>:
> [EMAIL PROTECTED] said:
> > According to my cross-reference generator, the following symbols have
> > missing help in 2.4.6-pre9:
> 
> Please fix your cross-reference generator as previously discussed before 
> posting these lists again.

I put the symbols we discussed previously on my ignore list.  What's
your beef this time?
-- 
http://www.tuxedo.org/~esr/;>Eric S. Raymond

The saddest life is that of a political aspirant under democracy. His
failure is ignominious and his success is disgraceful.
-- H.L. Mencken
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread Steven J. Hill

"Eric S. Raymond" wrote:
> 
> CONFIG_MIPS_EV64120
> CONFIG_MIPS_EV96100
> CONFIG_MIPS_ITE8172
> CONFIG_MIPS_IVR
> CONFIG_MIPS_PB1000
> CONFIG_MIPS_UNCACHED
> CONFIG_NINO
> CONFIG_NINO_16MB
> CONFIG_NINO_4MB
> CONFIG_NINO_8MB
>
I can fill in the blanks on all of these for you. I won't clutter
up the mailing list with the complete descriptions.

-Steve

-- 
 Steven J. Hill - Embedded SW Engineer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread David Woodhouse


[EMAIL PROTECTED] said:
> According to my cross-reference generator, the following symbols have
> missing help in 2.4.6-pre9:

Please fix your cross-reference generator as previously discussed before 
posting these lists again.

--
dwmw2


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Kernel oops 2.4.2

2001-07-03 Thread HEUER,JOCHEN (HP-Germany,ex2)

Hello everyone,

I got the following oops on a HP Netserver (single CPU) running Linux
version
2.4.2-SGI_XFS_1.0 compiled with gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)

with two modifications:

--- v2.4.4/linux/fs/nfsd/nfsfh.cFri Feb  9 11:29:44 2001
+++ linux/fs/nfsd/nfsfh.c   Sat May 19 17:47:55 2001
@@ -244,6 +245,11 @@
 */
pdentry = child->d_inode->i_op->lookup(child->d_inode, tdentry);
d_drop(tdentry); /* we never want ".." hashed */
+   if (!pdentry && tdentry->d_inode == NULL) {
+   /* File system cannot find ".." ... sad but possible */
+   dput(tdentry);
+   pdentry = ERR_PTR(-EINVAL);
+   }
if (!pdentry) {
/* I don't want to return a ".." dentry.
 * I would prefer to return an unconnected "IS_ROOT" dentry,

Without this patch the machine would cause an oops with NULL pointer
dereference (probably looking up ../).
Furthermore the megaraid driver 1.14b is used in this kernel.


kernel BUG at dcache.c:128!
invalid operand: 
CPU:0
EIP:0010:[dput+40/376]
EIP:0010:[]
EFLAGS: 00013286
eax: 001c   ebx: de98e1e0   ecx:    edx: 
esi: de98e1e0   edi: de98e6e0   ebp: de98e6e0   esp: deecdebc
ds: 0018   es: 0018   ss: 0018
Process nfsd (pid: 749, stackpage=deecd000)
Stack: c02ca5cb c02ca66b 0080 ffea de98e1e0 c0172ddc de98e1e0
 
   0503317e c0173176 de98e6e0  deedbe14 1127 deedbe04
c0113638 
   ef5619e0 deecc000 ff8c  c0173504 ef561800 0503317e
 
Call Trace: [error_table+41059/44824] [error_table+41219/44824]
[nfsd_findparent+212/220] [find_fh_dentry+582/880] [schedule+736/1080]
[fh_verify+612/1128] [nfsd3_proc_getattr+149/160] 
Call Trace: [] [] [] [] []
[] [] 
   [nfsd_dispatch+203/360] [svc_process+684/1348] [nfsd+401/760]
[kernel_thread+35/48] 
   [] [] [] [] 

Code: 0f 0b 83 c4 0c 8d 76 00 ff 0b 0f 94 c0 84 c0 0f 84 35 01 00


This oops is more or less reproduce. Several HP-UX machines mount a
directory from this Linux machine via NFS. Running 'ls -lR' + some
filemanager actions make this oops happen.

What could be causing this problem? A bug in the knfsd or is it related
to SGI's XFS? nfs-utils-0.3.1-5 from RedHat are used. If further infos
are required just send me an email ...


Kind regards,

   Jochen Heuer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: 2.4.6-pre9: Failed HPT370 detection

2001-07-03 Thread Gav

On Tuesday 03 July 2001 17:22, Gav wrote:

> This kernel refuses to detect my HPT370 chipset. (where my root filesystem
> is, on raid0). It just hangs where the detection usually takes place, so no
> oops and no meaningfull bugreport :/
>
> I have the same options set in my config as I always have, I've never had
> any problem with this before.
>
> CONFIG_BLK_DEV_HPT366=y
> CONFIG_MD_RAID0=y
>
> Anyone else seen this? Maybe its more VIA weirdness.
>

Actually its the drives ON the HPT chipset that arent being detected, not the 
chipset itself.

usually:
HPT370: IDE controller on PCI bus 00 dev 98
PCI: Found IRQ 11 for device 00:13.0 
HPT370: chipset revision 3 
HPT370: not 100%% native mode: will probe irqs later
ide2: BM-DMA at 0xe000-0xe007, BIOS settings: hde:DMA, hdf:pio
ide3: BM-DMA at 0xe008-0xe00f, BIOS settings: hdg:DMA, hdh:pio
hda: SAMSUNG SV0322A, ATA DISK drive 
hdb: Hewlett-Packard CD-Writer Plus 9100b, ATAPI CD/DVD-ROM drive
hde: IBM-DTLA-305040, ATA DISK drive
hdg: IBM-DTLA-305040, ATA DISK drive


in 2.4.6-pre9:
HPT370: IDE controller on PCI bus 00 dev 98
PCI: Found IRQ 11 for device 00:13.0 
HPT370: chipset revision 3 
HPT370: not 100%% native mode: will probe irqs later
ide2: BM-DMA at 0xe000-0xe007, BIOS settings: hde:DMA, hdf:pio
ide3: BM-DMA at 0xe008-0xe00f, BIOS settings: hdg:DMA, hdh:pio
hda: SAMSUNG SV0322A, ATA DISK drive 
hdb: Hewlett-Packard CD-Writer Plus 9100b, ATAPI CD/DVD-ROM drive


Sorry about that.

-- Gavin Baker
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Cross-reference analysis reveals problems in 2.4.6pre9

2001-07-03 Thread Eric S. Raymond

According to my cross-reference generator, the following symbols have
missing help in 2.4.6-pre9:

CONFIG_AU1000_UART
CONFIG_BLUEZ_L2CAP
CONFIG_DDB5477
CONFIG_EVB_PCI1
CONFIG_FORWARD_KEYBOARD
CONFIG_GDB_CONSOLE
CONFIG_HD64465_IOBASE
CONFIG_IT8172_REVC
CONFIG_IT8172_SCR0
CONFIG_IT8172_SCR1
CONFIG_LL_DEBUG
CONFIG_MAPLE
CONFIG_MAPLE_KEYBOARD
CONFIG_MAPLE_MOUSE
CONFIG_MIDI_VIA82CXXX
CONFIG_MIPS_EV64120
CONFIG_MIPS_EV96100
CONFIG_MIPS_ITE8172
CONFIG_MIPS_IVR
CONFIG_MIPS_PB1000
CONFIG_MIPS_UNCACHED
CONFIG_MTD_OCELOT
CONFIG_NINO
CONFIG_NINO_16MB
CONFIG_NINO_4MB
CONFIG_NINO_8MB
CONFIG_ORION
CONFIG_SH_7751_SOLUTION_ENGINE
CONFIG_ST40_LMI_MEMORY
CONFIG_SYSCLK_100
CONFIG_SYSCLK_75
CONFIG_SYSCLK_83
CONFIG_TULIP_MMIO

This list exposes a couple of problems:

1. CONFIG_ORION has been removed from the main MIPS config.in but is
   still referenced in drivers/net/config.in.

2. The MIPS config.in sets CONFIG_AU1000 but does not reference it,
   then references CONFIG_AU1000_UART without ever setting it.  This
   probably indicates that one of these is a mistake.

I have already written help entries for three other symbols CONFIG_DDB5477,
CONFIG_QTRONIX_KEYBOARD, and CONFIG_AGP_SWORKS.  Would responsible
maintainers please supply help entries for the above?
-- 
http://www.tuxedo.org/~esr/;>Eric S. Raymond

"Boys who own legal firearms have much lower rates of delinquency and
drug use and are even slightly less delinquent than nonowners of guns."
-- U.S. Department of Justice, National Institute of
   Justice, Office of Juvenile Justice and Delinquency Prevention,
   NCJ-143454, "Urban Delinquency and Substance Abuse," August 1995.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



2.4.6-pre9: Failed HPT370 detection

2001-07-03 Thread Gav

This kernel refuses to detect my HPT370 chipset. (where my root filesystem 
is, on raid0). It just hangs where the detection usually takes place, so no 
oops and no meaningfull bugreport :/

I have the same options set in my config as I always have, I've never had any 
problem with this before. 

CONFIG_BLK_DEV_HPT366=y 
CONFIG_MD_RAID0=y

Anyone else seen this? Maybe its more VIA weirdness.


-- Regards, Gavin Baker
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Fun with Athlon, VIA KX133, and kernel 2.4.x

2001-07-03 Thread Jeff Read

Hello,

My system has a Procomp BVK1A mainboard sporting one of those dreaded VIA KX133 
chipsets. I have been a virtual lurker, monitoring the archives, and have heard plenty 
of horror stories about this chipset, but let me make clear that this board was 
rock-solid for the better part of a year. It would go for weeks without a power-off or 
reboot. People would look at me funny, and ask, "Doesn't your computer *crash*?" (Of 
course not; it runs Linux!)

Then, a couple of months ago, I installed 2.4.4. And that, as Stevie B. once said, was 
where the heartache began.

Every time I use X, given sufficient time (between 15 minutes and 24 hours), the 
system would freeze. Solid. I haven't tried the Magic SysRq key, but heck, my CapsLock 
won't even go on and off. Usually it takes a while but the problem seems to be 
exacerbated by heavy-load, graphics-intensive applications (GIMP and Mozilla come to 
mind). Console mode seems to run okay, but in the Real World sometimes a GUI is 
necessary.

That's not the half of it. Sometimes, Windows freezes in identical fashion. I've even 
experienced it occasionally under NetBSD, but that usually takes quite a long while. 
I've tried 2.4.4, 2.4.5, several AC patches to 2.4.5, then I went back and tried 
2.4.1. I've compiled it for an Athlon, a PII, a Pentium, and a 486. I suspected the 
AGPGART and DRI drivers and so I unloaded those as well. I'm typing this message to 
you under kernel 2.2.19. I am still experiencing freezes. Remember, this box was 
incredibly stable before 2.4.4 and I really don't want to give up this mainboard and 
CPU; it's got some nice things (like 2 serial ports!) that are hard to find anymore.

The CPU is not overclocked and I have ruled out cooling problems (the fans hum nicely 
at top speed). I was wondering if anyone knew what's going on, and if there's some 
patch I need to apply. Did I tickle some sort of schroedinbug in the chipset that was 
kind of hiding there, waiting to make things fail? If anyone has any answers, please 
CC me personally. Thanks for all your time and patience.
-- 
--
Jeff Read <[EMAIL PROTECTED]>
Unix Code Artist, Anime Fan, Really Cool Guy

_
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: about kmap_high function

2001-07-03 Thread Stephen C. Tweedie

Hi,

On Tue, Jul 03, 2001 at 10:47:20PM +1000, Paul Mackerras wrote:
> Stephen C. Tweedie writes:
> 
> On PPC it is a bit different.  Flushing a single TLB entry is
> relatively cheap - the hardware broadcasts the TLB invalidation on the
> bus (in most implementations) so there are no cross-calls required.  But
> flushing the whole TLB is expensive because we (strictly speaking)
> have to flush the whole of the MMU hash table as well.

How much difference is there?  We only flush once per kmap sweep, and
we have 1024 entries in the global kmap pool, so the single tlb flush
would have to be more than a thousand times less expensive overall
than the global flush for that change to be worthwhile.

If the page flush really is _that_ much faster, then sure, this
decision can easily be made per-architecture: the kmap_high code
already has all of the locking and refcounting to know when a per-page
tlb flush would be safe.

Cheers,
 Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: O_DIRECT please; Sybase 12.5

2001-07-03 Thread Stephen C. Tweedie

Hi,

On Tue, Jul 03, 2001 at 08:10:39AM -0700, Daryll Strauss wrote:

> I recall hearing about a problem with the md device and raw IO. It was
> something about the block sizes not matching causing performance
> problems. Has anything been done to improve those issues?

The problem is a combination of two things.  First, raw IO is always
fully synchronous, so with raw IO (and O_DIRECT) you are, in effect,
explicitly instructing the kernel not to do any readahead.  That makes
it hard to keep two disks running in parallel with soft raid if you
are using small IOs, obviously.

Secondly, raw IO pins buffers in physical memory, and to avoid
causing serious VM problems due to having too much unswappable memory
pinned by arbitrary applications, the current raw IO driver limits the
pinned chunk size to 64k.  That, combined with the sequential nature
of raw IO, can limit performance, certainly.

Raw IO is quite capable of running with larger chunk sizes, but we
really need a kernel limiter of some description to prevent users from
using this mechanism to pin massive amounts of memory for raw IO at
once.  There are several candidate mechanisms for that, but none in
the main kernel right now.

Cheers,
 Stephen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: linux-2.4.6-pre8/drivers/mtd/nand/spia.c: undefined symbols

2001-07-03 Thread Steven J. Hill

"Adam J. Richter" wrote:
> 
> If there is no architecture on which
> linux-2.4.6-pre8/drivers/mtd/nand/spia.c will compile in its
> "pristine" form, then the CONFIG_MTD_NAND_SPIA should be commented
> out from drivers/mtd/nand/Config.in to avoid wasting the time of
> users and automated build processes alike that just want to build
> all available modules by default.  (At the moment, this code is
> not even bracketed by CONFIG_EXPERIMENTAL, although changing that
> would not be a sufficient fix.)
> 
David has fixed this and it is in the MTD CVS now.

> Alternatively, if you will send me a one line description
> of each of those four #define parameters, I will be happy to do the grunt
> work of submiting a patch to you or whoever is appropriate to replace
> those values with module and setup parameters that default to those
> values if there are #defined and otherwise will abort initialization
> if they are not #defined and no values were provided at run time.
> (Or, better, yet, you can do this work!)
> 
I have filled in the #define values and placed the new 'spia.c' into
the MTD CVS. I added comments for how those various values should be
defined. Shame on me for forgetting to comment those months ago. Sorry.
I believe that fixes things now?

-Steve

-- 
 Steven J. Hill - Embedded SW Engineer
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Memory access

2001-07-03 Thread Alan Cox

> My question: is the kernel using or protecting this area of the memory,
> and is there a way to deprotect it??? (how dangerous!)

The kernel maps ISA space at different addresses. What address and how it is
accessed depends on the CPU and system

isa_readb/readw/readl(addr)
isa/writeb/writew/writel(value,addr)

to read/write 8,16,32 bit values 



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: O_DIRECT please; Sybase 12.5

2001-07-03 Thread Daryll Strauss

On Tue, Jul 03, 2001 at 10:42:53AM +0100, Stephen C. Tweedie wrote:
> On Fri, Jun 29, 2001 at 02:39:00AM -0700, Dan Kegel wrote:
> 
> > It supports raw partitions, which is good; that might satisfy my
> > boss (although the administration will be a pain, and I'm not
> > sure whether it's really supported by Dell RAID devices).
> 
> All block devices support raw IO --- the raw IO mechanism talks to the
> device driver through the normal kernel-internal block IO entry
> points.
> 
> > I'd prefer O_DIRECT :-(
> 
> Andrea Arcangeli has already posted patches you can try for ext2.  The
> functionality isn't in the mainline kernel yet, though.

I recall hearing about a problem with the md device and raw IO. It was
something about the block sizes not matching causing performance
problems. Has anything been done to improve those issues?

- |Daryll
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: VM Requirement Document - v0.0

2001-07-03 Thread Daniel Phillips

On Tuesday 03 July 2001 12:33, Marco Colombo wrote:
> Oh, yes, since that PAGE_AGE_BG_INTERACTIVE_MINIMUM is applied only
> when background aging, maybe it's not enough to keep processes like
> updatedb from causing interactive pages to be evicted.
> That's why I said we should have another way to detect that kind of
> activity... well, the application could just let us know (no need to
> embed an autotuning-genetic-page-replacement-optimizer into the kernel).
> We should just drop all FS metadata accessed by updatedb, since we
> know that's one-shot only, without raising pressure at all.

Note that some of updatedb's metadata pages are of the accessed-often kind, 
e.g., directory blocks and inodes.  A blanket low priority on all the pages 
updatedb touches just won't do.

> Just like
> (not that I'm proposing it) putting those "one-shot" pages directly on
> the inactive-clean list instead of the active list. How an application
> could declare such a behaviour is an open question, of course. Maybe it's
> even possible to detect it. And BTW that's really fine tuning.
> Evicting an 8 hours old page may be a mistake sometime, but it's never
> a *big* mistake.

IMHO, updatedb *should* evict all the "interactive" pages that aren't 
actually doing anything[1].  That way it should run faster, provided of 
course its accessed-once pages are properly given low priority.

I see three page priority levels:

  0 - accessed-never/aged to zero
  1 - accessed-once/just loaded
  2 - accessed-often

with these transitions:

  0 -> 1, if a page is accessed
  1 -> 2, if a page is accessed a second time
  1 -> 0, if a page gets old
  2 -> 0, if a page gets old

The 0 and 1 level pages are on a fifo queue, the 2 level pages are scanned 
clock-wise, relying on the age computation[2].  Eviction candidates are taken 
from the cold end of the 0 level list, unless it is empty, in which case they 
are taken from the 1 level list. In desperation, eviction candidates are 
taken from the 2 level list, i.e., random eviction policy, as opposed to what 
we do now which is to initiate an emergency scan of the active list for new 
inactive candidates - rather like calling a quick board meeting when the 
building is on fire.

Note that the above is only a very slight departure from the current design.  
And by the way, this is just brainstorming, it hasn't reached the 'proposal' 
stage yet.

[1] It would be nice to have a mechanism whereby the evicted 'interactive' 
pages are automatically reloaded when updatedb has finished its work.  This 
is a case of scavenging unused disk bandwidth for something useful, i.e., 
improving the interactive experience.

[2] I much prefer the hot/cold terminology over old/young.  The latter gets 
confusing because a 'high' age is 'young'.  I'd rather think of a high value 
as being 'hot'.

--
Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Problem with SMC Etherpower II + kernel newer 2.4.2

2001-07-03 Thread Olivier Sessink

On  0, Florian Schmitt <[EMAIL PROTECTED]> wrote:
> 
> > Does anybody else got these errors or knows about a solution for this ??
> 
> Same problem here, it won't run at all on newer kernels. But it isn't even 
> 100% stable in 2.2.x here - on very high network traffic the card stops 
> working. In this case, it helps to pull the network plug for a short time, 
> then everything goes back to normal. I reduced speed to 10MB, and now it is 
> stable at least in 2.2.x. 

I use (kernel 2.4.4 and 2.4.5) a cron script that pings, and will run 
ifdown eth0; ifup eth0
when the ping fails, this seems to be good enough to get it up and running
again, sometimes I need to reload the module, but it's indeed very annoying.

if ! ping -c 1 -n -q 192.168.100.2 ; then
ifdown eth0
ifup eth0
if ! ping -c 1 -n -q 192.168.100.2 ; then
ifdown eth0
rmmod epic100
insmod epic100
ifup eth0
fi
fi

regards,
Olivier
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Memory access

2001-07-03 Thread Richard B. Johnson

On Tue, 3 Jul 2001, [iso-8859-1] Guillaume Lancelin wrote:

> Writing a device driver for a IO card, I have the following message from
> the kernel:
> Unable to handle kernel paging request at virtual address 000d0804.
> [then it gives the register values]
> Segmentation fault."
> 
> This address (0xd0804) is the location of a "mailbox" reserved by the IO
> card, and from which commands are passed to the card.
> 
> My question: is the kernel using or protecting this area of the memory,
> and is there a way to deprotect it??? (how dangerous!)
> 

This is not the correct address!! The addresses in the kernel are
virtual addresses, you need to execute ioremap(0xd0804, LENGTH) to
get the correct virtual address for access.

Cheers,
Dick Johnson

Penguin : Linux version 2.4.1 on an i686 machine (799.53 BogoMips).

I was going to compile a list of innovations that could be
attributed to Microsoft. Once I realized that Ctrl-Alt-Del
was handled in the BIOS, I found that there aren't any.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Scsi errors on boot.

2001-07-03 Thread Alessandro Motter Ren


I am getting the follwing error messages on the kernel boot. Does
anyone have any idea what the problem might be? The kernel is 2.2.19.
Thanks.

Detected scsi disk sda at scsi0, channel 0, id 0, lun 0
(scsi0:0:0:1) Synchronous at 160.0 Mbyte/sec, offset 63.
(scsi0:0:0:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:0:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
scsi0 channel 0 : resetting for second half of retries.
SCSI bus is being reset for host 0 channel 0.
(scsi0:0:0:1) Synchronous at 160.0 Mbyte/sec, offset 63.
(scsi0:0:0:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:0:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:0:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
  Vendor: SEAGATE   Model: ST39204LW Rev: 0002
  Type:   Direct-Access  ANSI SCSI revision: 03
Detected scsi disk sdb at scsi0, channel 0, id 1, lun 0
(scsi0:0:1:1) Synchronous at 160.0 Mbyte/sec, offset 63.
(scsi0:0:1:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:1:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
scsi0 channel 0 : resetting for second half of retries.
SCSI bus is being reset for host 0 channel 0.
(scsi0:0:1:1) Synchronous at 160.0 Mbyte/sec, offset 63.
(scsi0:0:1:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:1:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
(scsi0:0:1:1) CHECK_CONDITION on REQUEST_SENSE, returning an error.
scsi : detected 2 SCSI disks total.
(scsi0:0:0:0) Synchronous at 160.0 Mbyte/sec, offset 63.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Memory access

2001-07-03 Thread Eli Carter

Guillaume Lancelin wrote:
> 
> Writing a device driver for a IO card, I have the following message from
> the kernel:
> Unable to handle kernel paging request at virtual address 000d0804.
> [then it gives the register values]
> Segmentation fault."
> 
> This address (0xd0804) is the location of a "mailbox" reserved by the IO
> card, and from which commands are passed to the card.
> 
> My question: is the kernel using or protecting this area of the memory,
> and is there a way to deprotect it??? (how dangerous!)

Sounds like you may want to look into ioremap() and maybe buy Linux
Device Drivers by Rubini (O'Reilly).

Have fun!

Eli 
---.   No wonder we didn't get this right first time
Eli Carter |  through. It's not really all that horribly 
eli.carter(at)inet.com `- complicated, but the _details_ kill you. Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Memory access

2001-07-03 Thread Brian Gerst

Guillaume Lancelin wrote:
> 
> Writing a device driver for a IO card, I have the following message from
> the kernel:
> Unable to handle kernel paging request at virtual address 000d0804.
> [then it gives the register values]
> Segmentation fault."
> 
> This address (0xd0804) is the location of a "mailbox" reserved by the IO
> card, and from which commands are passed to the card.
> 
> My question: is the kernel using or protecting this area of the memory,
> and is there a way to deprotect it??? (how dangerous!)

Use ioremap()

--

Brian Gerst
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: Memory access

2001-07-03 Thread Arnaldo Carvalho de Melo

Em Tue, Jul 03, 2001 at 04:45:32PM +0200, Guillaume Lancelin escreveu:
> Writing a device driver for a IO card, I have the following message from
> the kernel:
> Unable to handle kernel paging request at virtual address 000d0804.
> [then it gives the register values]
> Segmentation fault."
> 
> This address (0xd0804) is the location of a "mailbox" reserved by the IO
> card, and from which commands are passed to the card.
> 
> My question: is the kernel using or protecting this area of the memory,
> and is there a way to deprotect it??? (how dangerous!)

are you accessing it directly? read Documentation/IO-mapping.txt

- Arnaldo
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Memory access

2001-07-03 Thread Guillaume Lancelin

Writing a device driver for a IO card, I have the following message from
the kernel:
Unable to handle kernel paging request at virtual address 000d0804.
[then it gives the register values]
Segmentation fault."

This address (0xd0804) is the location of a "mailbox" reserved by the IO
card, and from which commands are passed to the card.

My question: is the kernel using or protecting this area of the memory,
and is there a way to deprotect it??? (how dangerous!)

Thanks
Guillaume



___
Do You Yahoo!?
Yahoo! Messenger: Comunicación instantánea gratis con tu gente -
http://messenger.yahoo.es
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: [RFC] I/O Access Abstractions

2001-07-03 Thread Benjamin Herrenschmidt

>> I'm more concerned about having all that space mapped permanently in
>> kernel virtual space. I'd prefer mapping on-demand, and that would
>> require a specific ioremap for IOs.
>
>I have no problem with the idea of a function to indicate which I/O maps you
>are and are not using. But passing resource structs around is way too heavy

Too heavy for inx/outx, I agree, but why too heavy to ioremap ? That would
make a clean abstract implementation, with a semantic like "prepare this
resource for use by the driver". A kind of generic ioremap for IOs, resources,
and whatever another bus type may want to define, returning a token that is
to be passed to readx/writex in all cases but PIO, where it's passed to
inx/outx. That souds to me like the most flexible mecanism, and the small 
bit of overhead of passing the resource pointer is done _once_, usually
at driver init.

Something like

   iomap_resource(struct resource *);
   iounmap_resource(struct resource *);

Eventually, we can have it more fine grained in case where the driver don't
need the entire resource (maybe useful for framebuffers exporting very large
double-endian apertures where only one half is needed).

   iomap_resource(struct resource *, unsigned long offset, unsigned long
size);
   iounmap_resource(struct resource *, unsigned long offset, unsigned
long size);
  
The implementation would just call ioremap/iounmap for memory type resources,
and the identity for IO resources on x86. Other archs can then play whatever
tricks, like placing cookies in there.

One thing I have in mind here is the ability for things like embedded that
can have weird bus types, to have additional flags in the resources taken
into account by iomap/unmap to locate the proper bus, or build the proper
cookie that will be used by inx/outx, or define some access attributes
depending on other resource flags (write combine ?). 

Ben.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: include/asm-i386/checksum.h

2001-07-03 Thread Erik Meusel

On Tue, 3 Jul 2001, J . A . Magallon wrote:

> make a couple symlinks and you will not have to touch kernel makefiles:
> ln -s /usr/local/include/ncurses /usr/include
That's the thing I wanted to work around, but ok. It was just a
suggestion.

mfg, Erik

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: include/asm-i386/checksum.h

2001-07-03 Thread J . A . Magallon


On 20010703 Erik Meusel wrote:
>On Tue, 3 Jul 2001, Keith Owens wrote:
>
>> >P.S.: would it be possible to patch the menuconfig in that way, that it
>> >does look in the whole include-path for the  and relating
>> >files? they aren't in /usr/include/ in my system and I'm tired of patching
>> >linux/scripts/lxdialog/Makefile all the time. :)
>> Where is it on your system?  What patch do you apply?
>It is in /usr/local/include/ since I installed it myself, months ago.
>The patch is attached. Just made silly to use /usr/local/ instead of /usr/.
>

make a couple symlinks and you will not have to touch kernel makefiles:
ln -s /usr/local/include/ncurses /usr/include


-- 
J.A. Magallon   #  Let the source be with you...
mailto:[EMAIL PROTECTED]
Mandrake Linux release 8.1 (Cooker) for i586
Linux werewolf 2.4.5-ac23 #1 SMP Tue Jul 3 01:58:06 CEST 2001 i686
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: linux-2.4.6-pre8/drivers/mtd/nand/spia.c: undefined symbols

2001-07-03 Thread Adam J. Richter

>> linux-2.4.6-pre8/drivers/mtd/nand/spia.c references four
>> undefined symbols, presumably intended to be #define constants,
>> although I am not sure what their values are supposed to be:
>> 
>> IO_BASE
>> FIO_BASE
>> PEDR
>> PEDDR
>> 
>The way that I architected the raw NAND flash device driver was to
>break it into 2 parts. 'nand.c' contains the actual driver code and
>is considered to be device independent. 'spia.c' is the device
>dependent part. You should write your own version of 'spia.c' and
>"simply" fill in the addresses for the IO address and control
>register address depending on your specific hardware. The above
>symbols are only defined for my specific hardware. They should be
>changed to values used on your hardware platform. Let me know if
>you need further assistance.

>-Steve

>-- 
> Steven J. Hill - Embedded SW Engineer

If there is no architecture on which
linux-2.4.6-pre8/drivers/mtd/nand/spia.c will compile in its
"pristine" form, then the CONFIG_MTD_NAND_SPIA should be commented
out from drivers/mtd/nand/Config.in to avoid wasting the time of
users and automated build processes alike that just want to build
all available modules by default.  (At the moment, this code is
not even bracketed by CONFIG_EXPERIMENTAL, although changing that
would not be a sufficient fix.)

Alternatively, if you will send me a one line description
of each of those four #define parameters, I will be happy to do the grunt
work of submiting a patch to you or whoever is appropriate to replace
those values with module and setup parameters that default to those
values if there are #defined and otherwise will abort initialization
if they are not #defined and no values were provided at run time.
(Or, better, yet, you can do this work!)

Please let me know how you want to proceed.

Adam J. Richter __ __   4880 Stevens Creek Blvd, Suite 104
[EMAIL PROTECTED] \ /  San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l   United States of America
fax +1 408 261-6631  "Free Software For The Rest Of Us."


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: alpha - generic_init_pit - why using RTC for calibration?

2001-07-03 Thread Oleg I. Vdovikin

Here is the patch against the buggy Cypress RTC which is found on some
Alpha boards. It's tested with 2.2.16 & 2.2.19 kernels and as seems should
work with 2.4.x kernels. This patch differs from initial Ivan's version by
the "cc" variable type & different calibrate divisor usage for better
accuracy.

Please consider applying this patch against the 2.2.x tree. It's really
needed due to overall performance reasons.

Thanks,
Oleg.

--- linux/arch/alpha/kernel/time.c.orig Mon Jul  2 14:05:09 2001
+++ linux/arch/alpha/kernel/time.c Mon Jul  2 15:47:45 2001
@@ -231,6 +231,49 @@
  outb(0x13, 0x42);
 }

+/*
+ * Calibrate CPU clock using legacy 8254 timer/counter. Stolen from
+ * arch/i386/time.c.
+ */
+
+#define CALIBRATE_DIVISOR 0x
+
+static unsigned long __init
+calibrate_cc(void)
+{
+ unsigned int cc;
+ unsigned long count = 0;
+
+ /* Set the Gate high, disable speaker */
+ outb((inb(0x61) & ~0x02) | 0x01, 0x61);
+
+ /*
+  * Now let's take care of CTC channel 2
+  *
+  * Set the Gate high, program CTC channel 2 for mode 0,
+  * (interrupt on terminal count mode), binary count,
+  * load maximum divisor we can get for accuracy - 65535
+  */
+
+ outb(0xb0, 0x43); /* binary, mode 0, LSB/MSB, Ch 2 */
+ outb(CALIBRATE_DIVISOR & 0xff, 0x42); /* LSB of count */
+ outb(CALIBRATE_DIVISOR >> 8, 0x42); /* MSB of count */
+
+ /* we still should not hang if timer not runing or N/A */
+ for (cc = rpcc(); (inb(0x61) & 0x20) == 0 && !(count >> 32); count++);
+
+ /* cycles delta */
+ cc = rpcc() - cc;
+
+ /* check for the reliable result */
+ if ((count < 1) || (count >> 32))
+ return 0;
+
+ /* and the final result in HZ */
+ return ((unsigned long)cc * CLOCK_TICK_RATE) / CALIBRATE_DIVISOR;
+}
+
+
 void
 time_init(void)
 {
@@ -239,6 +282,10 @@
  unsigned long cycle_freq, ppm_error;
  long diff;

+ /* Calibrate CPU clock using CTC. If this fails, use RTC. */
+ if (!est_cycle_freq)
+ est_cycle_freq = calibrate_cc();
+
  /*
   * The Linux interpretation of the CMOS clock register contents:
   * When the Update-In-Progress (UIP) flag goes from 1 to 0, the



 linux-2.2.x.rtc.patch


Re: about kmap_high function

2001-07-03 Thread Paul Mackerras

Stephen C. Tweedie writes:

> kmap_high is intended to be called routinely for access to highmem
> pages.  It is coded to be as fast as possible as a result.  TLB
> flushes are expensive, especially on SMP, so kmap_high tries hard to
> avoid unnecessary flushes.

The code assumes that flushing a single TLB entry is expensive on SMP,
while flushing the whole TLB is relatively cheap - certainly cheaper
than flushing several individual entries.  And that assumption is of
course true on i386.

On PPC it is a bit different.  Flushing a single TLB entry is
relatively cheap - the hardware broadcasts the TLB invalidation on the
bus (in most implementations) so there are no cross-calls required.  But
flushing the whole TLB is expensive because we (strictly speaking)
have to flush the whole of the MMU hash table as well.

The MMU gets its PTEs from a hash table (which can be very large) and
we use the hash table as a kind of level-2 cache of PTEs, which means
that the flush_tlb_* routines have to flush entries from the MMU hash
table as well.  The hash table can store PTEs from many contexts, so
it can have a lot of PTEs in it at any given time.  So flushing the
whole TLB would imply going through every single entry in the hash
table and clearing it.  In fact, currently we cheat - flush_tlb_all
actually only flushes the kernel portion of the address space, which
is all that is required in the three places where flush_tlb_all is
called at the moment.

This is not a criticism, rather a request that we expand the
interfaces so that the architecture-specific code can make the
decisions about when and how to flush TLB entries.

For example, I would like to get rid of flush_tlb_all and define a
flush_tlb_kernel_range instead.  In all the places where flush_tlb_all
is currently used, we do actually know the range of addresses which
are affected, and having that information would let us do things a lot
more efficiently on PPC.  On other platforms we could define
flush_tlb_kernel_range to just flush the whole TLB, or whatever.

Note that there is already a flush_tlb_range which could be used, but
some architectures assume that it is only used on user addresses.

Regards,
Paul.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: RFC: modules and 2.5

2001-07-03 Thread jlnance

On Tue, Jul 03, 2001 at 01:13:45AM -0400, Jeff Garzik wrote:
> A couple things that would be nice for 2.5 is
> - let MOD_INC_USE_COUNT work even when module is built into kernel, and
> - let THIS_MODULE exist and be valid even when module is built into
> kernel

I have something similar that I have wanted for a long time, and it would
accomplish what you want too.  I would like for the .o files for modules and
compiled in drivers to be identical.  It seems like this would be better for
testing because it should eleminate module vs non-module bugs.  We might
even want them to show up in /proc/modules, perhaps with some mechinism to
keep the reference count from going to 0.

I dont think I would want to unleash it on an end user, but if you omit the
part about letting the reference count go to zero, it should even be possible
to unload a compiled in driver and replace it with a new module.  If you
did not load each module into its own section, you would have to leak its
text and data memory, but this still might be useful for development.

Anyway, just some ideas I have been wanting to share for about 5 years.
Thanks for giving me an excuse.

Jim
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: [RFC] I/O Access Abstractions

2001-07-03 Thread Alan Cox

> I'm more concerned about having all that space mapped permanently in
> kernel virtual space. I'd prefer mapping on-demand, and that would
> require a specific ioremap for IOs.

I have no problem with the idea of a function to indicate which I/O maps you
are and are not using. But passing resource structs around is way too heavy

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: [RFC] I/O Access Abstractions

2001-07-03 Thread Alan Cox

> For example, one board I've got doesn't allow you to do a straight
> memory-mapped I/O access to your PCI device directly, but have to reposition a
> window in the CPU's memory space over part of the PCI memory space first, and
> then hold a spinlock whilst you do it.

What does this prove. PA-RISC has this problem in reverse for I/O cycle access
to PCI slots on hppa1.1 at least. Cookies work _fine_

And by the time you are taking a spinlock who cares about the add, you can do
that while the bus transactions for the atomic op are completing

On the other hand each call, each push of resource * pointers costs real clocks
on x86

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



  1   2   3   >