hold off on commits

2003-02-01 Thread Julian Elischer

I'm trying to generate and commit a correct backout of David's changes.
but since I have to synthesise the backout patch from cvs and check it
could people refrain from updating the following files?
I believe this is the complete set that are involved.
(if you know of any others let me know)

alpha/alpha/interrupt.c
alpha/alpha/trap.c
alpha/alpha/vm_machdep.c
ddb/db_ps.c
i386/i386/critical.c
i386/i386/exception.s
i386/i386/genassym.c
i386/i386/trap.c
i386/i386/vm_machdep.c
i386/i386/mp_machdep.c
ia64/ia64/trap.c
ia64/ia64/interrupt.c
ia64/ia64/vm_machdep.c
kern/init_main.c
kern/kern_clock.c
kern/kern_exec.c
kern/kern_exit.c
kern/kern_fork.c
kern/kern_lock.c
kern/kern_resource.c
kern/kern_sig.c
kern/kern_switch.c
kern/kern_thread.c
kern/subr_prof.c
kern/subr_trap.c
kern/subr_witness.c
powerpc/powerpc/vm_machdep.c
sparc64/sparc64/mp_machdep.c 
sparc64/sparc64/trap.c
sparc64/sparc64/vm_machdep.c
sys/buf.h
sys/lockmgr.h
sys/proc.h
sys/resourcevar.h
sys/systm.h



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



split out patch

2003-02-01 Thread Julian Elischer

I'm working on backing out david's patch.

Part of his megacommit was a patch that should ahve been separatly
handled.

I have split it out..
Can people have a look at it and see if it makes sense.

http://www.freebsd.org/~julian/lock.diff

basically locks need to be per thread but were per process.

Can we just use a thread* for this?
I think so but I wonder why it wasn't a proc* before..



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Request for info from SiS chipset owners

2003-02-01 Thread Soeren Schmidt

I'm currently in the midst of an ATA chipset support mega rewrite/update,
and the last item on the list is SiS support.

That where _you_ come into the picture, I need a pciconf -l from your
SiS based system!

Just reply to this message with the output from pciconf -l and you
have helped me sort out the myriads of SiS chipsets out there.

-Søren

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread Christopher Sharp
Hope this helps:

agp0@pci0:0:0:  class=0x06 card=0x chip=0x07351039 rev=0x01 hdr=0x00
pcib1@pci0:1:0: class=0x060400 card=0x chip=0x00011039 rev=0x00 hdr=0x01
isab0@pci0:2:0: class=0x060100 card=0x chip=0x00081039 rev=0x00 hdr=0x00
atapci0@pci0:2:5:   class=0x010180 card=0x55131039 chip=0x55131039 rev=0xd0 
hdr=0x00
bktr0@pci0:11:0:class=0x04 card=0x13eb0070 chip=0x036e109e rev=0x11 
hdr=0x00
none0@pci0:11:1:class=0x048000 card=0x13eb0070 chip=0x0878109e rev=0x11 
hdr=0x00
ed0@pci0:13:0:  class=0x02 card=0x802910ec chip=0x802910ec rev=0x00 hdr=0x00
pcm0@pci0:17:0: class=0x040100 card=0x80401102 chip=0x00021102 rev=0x05 hdr=0x00
emujoy0@pci0:17:1:  class=0x098000 card=0x00201102 chip=0x70021102 rev=0x05 
hdr=0x00
none1@pci1:0:0: class=0x03 card=0x88081462 chip=0x002d10de rev=0x15 hdr=0x00

- Chhristopher

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



alpha tinderbox failure

2003-02-01 Thread Dag-Erling Smorgrav
--
 Rebuilding the temporary build tree
--
 stage 1: bootstrap tools
--
 stage 2: cleaning up the object tree
--
 stage 2: rebuilding the object tree
--
 stage 2: build tools
--
 stage 3: cross tools
--
 stage 4: populating /home/des/tinderbox/alpha/obj/h/des/src/alpha/usr/include
--
 stage 4: building libraries
--
 stage 4: make dependencies
--
 stage 4: building everything..
--
 Kernel build for GENERIC started on Sat Feb  1 03:11:00 PST 2003
--
 Kernel build for GENERIC completed on Sat Feb  1 03:43:16 PST 2003
--
 Kernel build for LINT started on Sat Feb  1 03:43:16 PST 2003
--
=== vinum
Makefile, line 4447: warning: duplicate script for target geom_bsd.o ignored
/h/des/src/sys/dev/lmc/if_lmc.c:32:2: warning: #warning The lmc driver is broken and 
is not compiled with LINT
/h/des/src/sys/dev/pdq/pdq.c: In function `pdq_initialize':
/h/des/src/sys/dev/pdq/pdq.c:1606: warning: cast discards qualifiers from pointer 
target type
/h/des/src/sys/pci/meteor.c:149:2: warning: #warning The meteor driver is broken and 
is not compiled with LINT
/h/des/src/sys/pci/simos.c:30:2: warning: #warning The simos driver is broken and is 
not compiled with LINT
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_open':
/h/des/src/sys/dev/gfb/gfb_pci.c:268: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:268: (Each undeclared identifier is reported only once
/h/des/src/sys/dev/gfb/gfb_pci.c:268: for each function it appears in.)
cc1: warnings being treated as errors
/h/des/src/sys/dev/gfb/gfb_pci.c:275: warning: passing arg 1 of `genfbopen' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_close':
/h/des/src/sys/dev/gfb/gfb_pci.c:284: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:285: warning: passing arg 1 of `genfbclose' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_read':
/h/des/src/sys/dev/gfb/gfb_pci.c:293: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:294: warning: passing arg 1 of `genfbread' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_write':
/h/des/src/sys/dev/gfb/gfb_pci.c:302: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:303: warning: passing arg 1 of `genfbwrite' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_ioctl':
/h/des/src/sys/dev/gfb/gfb_pci.c:311: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:312: warning: passing arg 1 of `genfbioctl' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_mmap':
/h/des/src/sys/dev/gfb/gfb_pci.c:320: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:321: warning: passing arg 1 of `genfbmmap' from 
incompatible pointer type
*** Error code 1

Stop in /h/des/obj/h/des/src/sys/LINT.
*** Error code 1

Stop in /h/des/src.
*** Error code 1

Stop in /h/des/src.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



end of hold-off

2003-02-01 Thread Julian Elischer

I've reverted the patch in question.




To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: pam_ssh broken in recent (as of yesterday) -current?

2003-02-01 Thread Alexander Leidinger
On Mon, 6 Jan 2003 11:17:23 +0100
Alexander Leidinger [EMAIL PROTECTED] wrote:

 On Fri, 03 Jan 2003 03:19:28 +0100
 Dag-Erling Smorgrav [EMAIL PROTECTED] wrote:
 
  Alexander Leidinger [EMAIL PROTECTED] writes:
   Dag-Erling, any ideas?
  
  http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/46628
  
  Fixed a couple of minutes ago.
 
 Just tested with a world from yesterday: it doesn't segfault anymore,
 but there's no ssh-agent running.
 
 No messages in xdm-errors, .xsession-errors, XFree86.0.log or messages.

Ping.

Bye,
Alexander.

-- 
   Press every key to continue.

http://www.Leidinger.net   Alexander @ Leidinger.net
  GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread qhwt
On Sat, Feb 01, 2003 at 12:02:05PM +0100, Soeren Schmidt wrote:
 Just reply to this message with the output from pciconf -l and you
 have helped me sort out the myriads of SiS chipsets out there.

agp0@pci0:0:0:  class=0x06 card=0x06481039 chip=0x06481039 rev=0x02 hdr=0x00
pcib1@pci0:1:0: class=0x060400 card=0x chip=0x00011039 rev=0x00 hdr=0x01
isab0@pci0:2:0: class=0x060100 card=0x chip=0x00081039 rev=0x04 hdr=0x00
atapci0@pci0:2:5:   class=0x010180 card=0x55131039 chip=0x55131039 rev=0x00 
hdr=0x00
none0@pci0:3:0: class=0x0c0310 card=0x70011039 chip=0x70011039 rev=0x0f hdr=0x00
none1@pci0:3:1: class=0x0c0310 card=0x70011039 chip=0x70011039 rev=0x0f hdr=0x00
none2@pci0:3:2: class=0x0c0310 card=0x70011039 chip=0x70011039 rev=0x0f hdr=0x00
none3@pci0:3:3: class=0x0c0320 card=0x50041458 chip=0x70021039 rev=0x00 hdr=0x00
dc0@pci0:11:0:  class=0x02 card=0x03151025 chip=0x00191011 rev=0x30 hdr=0x00
xl0@pci0:12:0:  class=0x02 card=0x chip=0x905010b7 rev=0x00 hdr=0x00
pcm0@pci0:13:0: class=0x040100 card=0x13711274 chip=0x13711274 rev=0x06 hdr=0x00
nvidia0@pci1:0:0:   class=0x03 card=0x chip=0x017110de rev=0xa3 
hdr=0x00

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Bosko Milekic

On Fri, Jan 31, 2003 at 11:48:17AM -0800, Peter Wemm wrote:
 The cache and most of the execution hardware is shared.  The execution
 units can run something like 4 instructions per clock.  If the idle
 logical core is in a spinloop, then it is generating instructions for
 execution, so you are dividing the execution resources between one context
 that is doing real work, and the other context that is burning off the
 excess resources.  Overall, it is a huge loss.  It is absolutely essential
 that logical cpus be halted when they are not doing useful work.

  What bothers me is that we have systems like UMA and mb_alloc (and
  possibly others) which have per-CPU structures, i.e., per-CPU caches,
  and when HTT is enabled, even the logical CPUs get their own cache
  when, in fact, it would probably be better (and less cache polluting)
  if the logical units (states) shared the same per-CPU structures.

  Briefly back to the cpu_idle_hlt story: Would it be possible to, at
  runtime - besides for just getting cpuid which gives us the logical
  unit number - get the actual physical CPU number that we're executing
  on?  e.g., in a 2 x 4 Xeon with HTT enabled, cpuid will range from 0
  to 3, would it be possible to have an equivalent variable that will
  give us only the physical unit number (in this case, it would range
  from 0 to 1, as there are two physical execution units).  That way, we
  can count how many times we issue 'hlt' for a thread running on
  physical unit number N, for example, and if we have 2 logical units
  per physical unit for instance, then when the count hits 1 no longer
  do the 'hlt' to not lose a tick?  The counter would have to be re-set
  at the next tick everytime a logical unit comes out of hlt and
  schedules a process.  You know what I mean?  It sounds a little
  complicated and I'm not sure it would be worth the effort, but it
  would get us the best of both scenarios, i.e., halt the logical unit
  when another logical unit on the same core is executing Real Code, and
  not halt the logical unit if both logical units on the given execution
  engine are idle.

  In any case, even if the above is not worth it, I'd still like to know
  if it's possible to get the physical unit number, as opposed to the
  logical unit number, at runtime?
  
[...]
 Cheers,
 -Peter
 --
 Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
 All of this is for nothing if we don't go to the stars - JMS/B5

-- 
Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Bosko Milekic

On Fri, Jan 31, 2003 at 11:52:53AM -0800, Matthew Dillon wrote:
  Another solution would be to have a global mask of 'idle' cpus and send
  an IPI to them when a new KSE is scheduled on a non-idle cpu that would
  simply serve to wakeup the HLT.  IPIs are nasty, but there are large 
  (power consumption) advantages to standardizing on the HLT methodology.

  Or, as I explained in my previous post, only HLT the [virtual] CPU if
  the other [virtual] CPU that is sharing the same execution  cache
  units is not HLT'd itself.  If the other one is HLT'd, then not do the
  HLT.

   -Matt
   Matthew Dillon 
   [EMAIL PROTECTED]


-- 
Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread Michael Bretterklieber
Hi,

chip0@pci0:0:0:	class=0x06 card=0x chip=0x55711039 rev=0x01 
hdr=0x00
isab0@pci0:1:0:	class=0x060100 card=0x chip=0x00081039 rev=0x01 
hdr=0x00
atapci0@pci0:1:1:	class=0x01018a card=0x0063000d chip=0x55131039 
rev=0xc1 hdr=0x00
none0@pci0:11:0:	class=0x03 card=0x chip=0x00e0102c rev=0xc6 
hdr=0x00


atapci0: SiS 5591 ATA33 controller port 
0x4000-0x400f,0x374-0x377,0x170-0x177,0x3f4-0x3f7,0x1f0-0x1f7 irq 14 at 
device 1.1 on pci0


bye,

Soeren Schmidt wrote:
I'm currently in the midst of an ATA chipset support mega rewrite/update,
and the last item on the list is SiS support.

That where _you_ come into the picture, I need a pciconf -l from your
SiS based system!

Just reply to this message with the output from pciconf -l and you
have helped me sort out the myriads of SiS chipsets out there.

-Søren

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message


--
--- -
Michael Bretterklieber- [EMAIL PROTECTED]
JAWA Management Software GmbH - http://www.jawa.at
Liebenauer Hauptstr. 200-- privat ---
A-8041 GRAZ GSM: ++43-(0)676-93 96 698
Tel: ++43-(0)316-403274-12  E-mail:   [EMAIL PROTECTED]
Fax: ++43-(0)316-403274-10  http://www.bretterklieber.com
--- -
...the number of UNIX installations has grown to 10, with more
expected... - Dennis Ritchie and Ken Thompson, June 1972


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread walt
Soeren Schmidt wrote:


Just reply to this message with the output from pciconf -l and you
have helped me sort out the myriads of SiS chipsets out there.



~# pciconf -l
chip0@pci0:0:0: class=0x06 card=0x chip=0x55911039 rev=0x02 hdr=0x00
atapci0@pci0:0:1:   class=0x010180 card=0x55131039 chip=0x55131039 rev=0xd0 hdr=0x00
isab0@pci0:1:0: class=0x060100 card=0x chip=0x00081039 rev=0x01 hdr=0x00
none0@pci0:1:1: class=0xff card=0x chip=0x00091039 rev=0x00 hdr=0x00
pcib2@pci0:2:0: class=0x060400 card=0x chip=0x00011039 rev=0x00 hdr=0x01
rl0@pci0:11:0:  class=0x02 card=0x813910ec chip=0x813910ec rev=0x10 hdr=0x00
none1@pci1:0:0: class=0x03 card=0x63261039 chip=0x63261039 rev=0x0b hdr=0x00



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread Ray Kohler
agp0@pci0:0:0:  class=0x06 card=0x chip=0x07301039 rev=0x02 hdr=0x00
atapci0@pci0:0:1:   class=0x010180 card=0x0a011019 chip=0x55131039 rev=0xd0 
hdr=0x00
isab0@pci0:1:0: class=0x060100 card=0x chip=0x00081039 rev=0x00 hdr=0x00
ohci0@pci0:1:2: class=0x0c0310 card=0x70011039 chip=0x70011039 rev=0x07 hdr=0x00
ohci1@pci0:1:3: class=0x0c0310 card=0x70001039 chip=0x70011039 rev=0x07 hdr=0x00
none0@pci0:1:4: class=0x040100 card=0x0a011019 chip=0x70181039 rev=0x02 hdr=0x00
pcib1@pci0:2:0: class=0x060400 card=0x chip=0x00011039 rev=0x00 hdr=0x01
rl0@pci0:13:0:  class=0x02 card=0x813910ec chip=0x813910ec rev=0x10 hdr=0x00
drm0@pci1:0:0:  class=0x03 card=0x013a1002 chip=0x51571002 rev=0x00 hdr=0x00



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



ata0: resetting device - ASUS P4S8X

2003-02-01 Thread Christoph Kukulies

I bought new hardware for a server today, an ASUS P4S8X with
an 1.8 GHZ P4 CPU, nothing fancy I would say, which has an
onboard RAID controller (Promise) but I'm not using it
for the moment. I attached an IBM 60GB Deskstar ATA/IDE disk to
the IDE 1 port. FreeBSD 5.0R boots until the point where
it says:

ad0: READ command timeout tag=0 serv=0 - resetting
ata0: resetting device

and there it hangs forever.

--
Chris Christoph P. U. Kukulies [EMAIL PROTECTED]



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: ata0: resetting device - ASUS P4S8X

2003-02-01 Thread phk
In message [EMAIL PROTECTED], Christoph Kuk
ulies writes:

I bought new hardware for a server today, an ASUS P4S8X with
an 1.8 GHZ P4 CPU, nothing fancy I would say, which has an
onboard RAID controller (Promise) but I'm not using it
for the moment. I attached an IBM 60GB Deskstar ATA/IDE disk to
the IDE 1 port. FreeBSD 5.0R boots until the point where
it says:

ad0: READ command timeout tag=0 serv=0 - resetting
ata0: resetting device

and there it hangs forever.

set hw.ata.ata_dma=0 

in the bootloader.

Sos@ is working the issue and will love to have a tester :-)

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread Robert Drehmel
 Soeren Schmidt wrote:
 I'm currently in the midst of an ATA chipset support mega rewrite/update,
 and the last item on the list is SiS support.
 
 That where _you_ come into the picture, I need a pciconf -l from your
 SiS based system!
 
 Just reply to this message with the output from pciconf -l and you
 have helped me sort out the myriads of SiS chipsets out there.

atapci0: SiS 5591 ATA33 controller port 0xd000-0xd00f,0xd400-0xd403,\
0xd800-0xd807,0xe000-0xe003,0xe400-0xe407 irq 11 at device 1.1 on pci0

hostb0@pci0:0:0:\
class=0x06 card=0x chip=0x55971039 rev=0x02 hdr=0x00
isab0@pci0:1:0:\
class=0x060100 card=0x chip=0x00081039 rev=0x01 hdr=0x00
atapci0@pci0:1:1:\
class=0x01018a card=0x chip=0x55131039 rev=0xd0 hdr=0x00
ed0@pci0:11:0:\
class=0x02 card=0x chip=0x802910ec rev=0x00 hdr=0x00
none0@pci0:19:0:\
class=0x03 card=0x1039 chip=0x02001039 rev=0x65 hdr=0x00

ciao,
-robert

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: ata0: resetting device - ASUS P4S8X

2003-02-01 Thread Soeren Schmidt
It seems Christoph Kukulies wrote:
 
 I bought new hardware for a server today, an ASUS P4S8X with
 an 1.8 GHZ P4 CPU, nothing fancy I would say, which has an
 onboard RAID controller (Promise) but I'm not using it
 for the moment. I attached an IBM 60GB Deskstar ATA/IDE disk to
 the IDE 1 port. FreeBSD 5.0R boots until the point where
 it says:
 
 ad0: READ command timeout tag=0 serv=0 - resetting
 ata0: resetting device

Thats because that board uses a new SiS chips which is not supported
yet. I'm currently working on it, but since I have no SiS based
HW here in the lab it takes time and is not the top most priority...

Meanwhile turn off DMA in loader.conf and then mail me the output from
pciconf -l from that system...

Hint to sponsors: I need a SiS based motherboard !!

-Søren

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Question about devd concept

2003-02-01 Thread Oliver Brandmueller
Hi,

I'm currently experimenting with 5-CURRENT on my Notebook an have a
question regarding the concept of devd.

With 4-STABLE I had pccardd running. Whenever a pccard was inserted I
had pccardd starting the corresponding scripts. I have configured devd
to do so now (especially for my wavelan pccard). So far everything
works, except for one case: When the pccard is already inserted during
boot, devd does not recognize the card as newly inserted device (of
course, it's already there). So I have currently setup a script in
/usr/local/etc/rc.d which starts the script corresponding to the wavelan
pccard, if interface wi0 is found during boot. I think this cannot be
the considered solution for that problem?

What am I missing about the concept of devd?

Thanx, Oliver


-- 
| Oliver Brandmueller | Offenbacher Str. 1  | Germany   D-14197 Berlin |
| Fon +49-172-3130856 | Fax +49-172-3145027 | WWW:   http://the.addict.de/ |
|   Ich bin das Internet. Sowahr ich Gott helfe.   |
| Eine gewerbliche Nutzung aller enthaltenen Adressen ist nicht gestattet! |

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Julian Elischer
still no comments?

this patch seems to be working, but a review from another developer
would be good.. particularly re: the point mentionned..


On Sat, 1 Feb 2003, Julian Elischer wrote:

 
 I'm working on backing out david's patch.
 
 Part of his megacommit was a patch that should ahve been separatly
 handled.
 
 I have split it out..
 Can people have a look at it and see if it makes sense.
 
 http://www.freebsd.org/~julian/lock.diff
 
 basically locks need to be per thread but were per process.
 
 Can we just use a thread* for this?
 I think so but I wonder why it wasn't a proc* before..
 
 
 
 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with unsubscribe freebsd-current in the body of the message
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread phk
In message [EMAIL PROTECTED], Ju
lian Elischer writes:

still no comments?

Julian, you sent this out a few hours ago, after people had spent
a lot of time and getting quite frustrated trying to get you to
DTRT with your mentee's inappropriate commit.

If people are sick and tired of you right now, you can't blame them.

Expecting any kind of response to this until people have gotten
their trees working again is premature, and if you end up at the
bottom of their TODO pile because of what came before this, there
is nothing for you to do, except to wait patiently.

Rushing an untested patch (Yes, I know you you havn't.  I know how
long time it takes, and you don't even have an SMP box to test it
on.) at this point it time would be downright stupid.

Poul-Henning

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Request for info from SiS chipset owners

2003-02-01 Thread Erik Trulsson
On Sat, Feb 01, 2003 at 12:02:05PM +0100, Soeren Schmidt wrote:
 
 I'm currently in the midst of an ATA chipset support mega rewrite/update,
 and the last item on the list is SiS support.
 
 That where _you_ come into the picture, I need a pciconf -l from your
 SiS based system!
 
 Just reply to this message with the output from pciconf -l and you
 have helped me sort out the myriads of SiS chipsets out there.
 
 -Søren

chip0@pci0:0:0: class=0x06 card=0x chip=0x55961039 rev=0x00 hdr=0x00
isab0@pci0:1:0: class=0x060100 card=0x chip=0x00081039 rev=0x01 hdr=0x00
atapci0@pci0:1:1:   class=0x01018a card=0x chip=0x55131039 rev=0x09 
hdr=0x00
atapci1@pci0:11:0:  class=0x018085 card=0x4d68105a chip=0x4d68105a rev=0x02 
hdr=0x00
none0@pci0:13:0:class=0x03 card=0x63261569 chip=0x63261039 rev=0x0b 
hdr=0x00
ed0@pci0:15:0:  class=0x02 card=0x802910ec chip=0x802910ec rev=0x00 hdr=0x00
none1@pci0:20:0:class=0x03 card=0x chip=0x02051039 rev=0x11 
hdr=0x00

The chipset used on this motherboard is a SiS 5596/5513.
(Even though dmesg likes to claim that the ATA controller is a SiS 5591, 
which it isn't.  It is a SiS 5513.)

-- 
Insert your favourite quote here.
Erik Trulsson
[EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



LockOrderReversal in current

2003-02-01 Thread Garance A Drosihn
From time-to-time I notice people reporting lock-order-reversal
messages here.  My system popped up with one sometime overnight,
I have no idea what it might have been doing at the time.

lock order reversal
 1st 0xc0514fc0 arp mutex (arp mutex) @ /usr/src/sys/netinet/if_ether.c:151
 2nd 0xc410707c radix node head (radix node head) @ 
/usr/src/sys/net/route.c:549

This is on a dual-CPU system.  Current-branch as built on Jan 27th.

--
Garance Alistair Drosehn=   [EMAIL PROTECTED]
Senior Systems Programmer   or  [EMAIL PROTECTED]
Rensselaer Polytechnic Instituteor  [EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message


Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Terry Lambert
Bosko Milekic wrote:
 On Fri, Jan 31, 2003 at 11:52:53AM -0800, Matthew Dillon wrote:
   Another solution would be to have a global mask of 'idle' cpus and send
   an IPI to them when a new KSE is scheduled on a non-idle cpu that would
   simply serve to wakeup the HLT.  IPIs are nasty, but there are large
   (power consumption) advantages to standardizing on the HLT methodology.
 
   Or, as I explained in my previous post, only HLT the [virtual] CPU if
   the other [virtual] CPU that is sharing the same execution  cache
   units is not HLT'd itself.  If the other one is HLT'd, then not do the
   HLT.

Actually, why is that?  Why would you not want to HLT all the
units that are not being used?

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Bosko Milekic

On Sat, Feb 01, 2003 at 12:47:59PM -0800, Terry Lambert wrote:
 Bosko Milekic wrote:
  On Fri, Jan 31, 2003 at 11:52:53AM -0800, Matthew Dillon wrote:
Another solution would be to have a global mask of 'idle' cpus and send
an IPI to them when a new KSE is scheduled on a non-idle cpu that would
simply serve to wakeup the HLT.  IPIs are nasty, but there are large
(power consumption) advantages to standardizing on the HLT methodology.
  
Or, as I explained in my previous post, only HLT the [virtual] CPU if
the other [virtual] CPU that is sharing the same execution  cache
units is not HLT'd itself.  If the other one is HLT'd, then not do the
HLT.
 
 Actually, why is that?  Why would you not want to HLT all the
 units that are not being used?

  Because, the comment explains, a halted CPU will not pick up a new
  thread off the run queue until the next timer tick.  So if all your
  logical units are idled then you can afford to just loop checking
  whether something is runnable without interfering with the performance
  of other threads running on a different logical cpu sharing your
  execution unit (because the other logical units are idle anyway).
  That way, you don't have to necessarily wait for the next timer tick
  to check whether something is runnable, especially if it's made
  runnable before.  The disadvantage is that you don't really economize
  on power consumption.

  The ideal situation would be to have as Matt (and the comment
  actually) says a cpu mask of idle cpus and generate an IPI to wake up
  CPUs sitting in HLT when something hits the runqueue, then you can
  just hlt all of them and rely on the IPI to wake you up, or the next
  timer tick, whichever comes first and you can really get the best of
  both worlds.

 -- Terry

-- 
Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Julian Elischer


On Sat, 1 Feb 2003 [EMAIL PROTECTED] wrote:

 In message [EMAIL PROTECTED], Ju
 lian Elischer writes:
 
 still no comments?
 
 Julian, you sent this out a few hours ago, after people had spent
 a lot of time and getting quite frustrated trying to get you to
 DTRT with your mentee's inappropriate commit.
 
 If people are sick and tired of you right now, you can't blame them.
 
 Expecting any kind of response to this until people have gotten
 their trees working again is premature, and if you end up at the
 bottom of their TODO pile because of what came before this, there
 is nothing for you to do, except to wait patiently.
 
 Rushing an untested patch (Yes, I know you you havn't.  I know how
 long time it takes, and you don't even have an SMP box to test it
 on.) at this point it time would be downright stupid.

Oh shut up Poul-Henning.

I know I'm on your shit list, and have been for years but don't
consider youself as spokesman for anyone but yourself.

Go invade Ireland or something.

 Poul-Henning
 
 -- 
 Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
 [EMAIL PROTECTED] | TCP/IP since RFC 956
 FreeBSD committer   | BSD since 4.3-tahoe
 Never attribute to malice what can adequately be explained by incompetence.
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Terry Lambert
Bosko Milekic wrote:
 Or, as I explained in my previous post, only HLT the [virtual] CPU if
 the other [virtual] CPU that is sharing the same execution  cache
 units is not HLT'd itself.  If the other one is HLT'd, then not do the
 HLT.
 
  Actually, why is that?  Why would you not want to HLT all the
  units that are not being used?
 
   Because, the comment explains, a halted CPU will not pick up a new
   thread off the run queue until the next timer tick.  So if all your
   logical units are idled then you can afford to just loop checking
   whether something is runnable without interfering with the performance
   of other threads running on a different logical cpu sharing your
   execution unit (because the other logical units are idle anyway).
   That way, you don't have to necessarily wait for the next timer tick
   to check whether something is runnable, especially if it's made
   runnable before.  The disadvantage is that you don't really economize
   on power consumption.

There's an assumption in there of a shared scheduler queue, and a
lack of CPU affinity (or negaffinity, for multiple threads in a
single process), isn't there?

Or are you talking about processes that are ready-to-run as a
result of an event that was handled by another CPU?  It seems to
me that a non-shared queue would need to signal wakeups with IPIs,
which would wake up a HLT'ed processor, which would make it a
non-problem (since there's no way to avoid per-CPU queue locking,
if you don't have an IPI-based mechanism available).


   The ideal situation would be to have as Matt (and the comment
   actually) says a cpu mask of idle cpus and generate an IPI to wake up
   CPUs sitting in HLT when something hits the runqueue, then you can
   just hlt all of them and rely on the IPI to wake you up, or the next
   timer tick, whichever comes first and you can really get the best of
   both worlds.

I think it's more complicated than that; you don't want to have
anything other than the CPU that owns the per CPU run queue doing
anything with it, which means that it's the wakeup event, not the
arrival on the run queue, which needs to be signalled.  Then the
CPU in question has to do it's own processing of pending wakeup
events in order to handle the placing of the process on the run
queue itself, rather than it being handled by another CPU.

This also implies per-CPU wait queues, and a reliable message
delivery mechanism for wakeup messages.

Though it may be enough to simple mark everything on the wait
queue as wakeup pending, for a first rev., and run the wait
queue, it's probably not a good idea for a production system,
since it brings back the Giant Scheduler Lock for the wait queue
(on the plus side, items awakened could be moved to the head of
the queue when they were marked, with the lock held anyway, and
that would shorten the list of traversed items per CPU to all
pending wakeup processing, rather than all queue entries).
But it's still too ugly for words.

I think something like wakeup signalling, as a message abstraction,
is required, in any case, considering support for clustering or NUMA,
going forward, to deal with slower signal paths on a single system
image for much more loosely coupled CPUs.  Directly modifying queues
in memory of other CPUs is unlikely to scale well, if it can even be
made to work at all.

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Bosko Milekic

On Sat, Feb 01, 2003 at 01:28:45PM -0800, Terry Lambert wrote:
 Bosko Milekic wrote:
  Or, as I explained in my previous post, only HLT the [virtual] CPU if
  the other [virtual] CPU that is sharing the same execution  cache
  units is not HLT'd itself.  If the other one is HLT'd, then not do the
  HLT.
  
   Actually, why is that?  Why would you not want to HLT all the
   units that are not being used?
  
Because, the comment explains, a halted CPU will not pick up a new
thread off the run queue until the next timer tick.  So if all your
logical units are idled then you can afford to just loop checking
whether something is runnable without interfering with the performance
of other threads running on a different logical cpu sharing your
execution unit (because the other logical units are idle anyway).
That way, you don't have to necessarily wait for the next timer tick
to check whether something is runnable, especially if it's made
runnable before.  The disadvantage is that you don't really economize
on power consumption.
 
 There's an assumption in there of a shared scheduler queue, and a
 lack of CPU affinity (or negaffinity, for multiple threads in a
 single process), isn't there?

  Well, euh, yeah, the runqueue was global the last time I checked
  (Jeff R.'s new stuff aside).  Maybe I'm just out of it, I don't know.

[... other probably meaningful stuff that makes the assumption that we
do have per-CPU queues protected by their own locks ...]

-- 
Bosko Milekic * [EMAIL PROTECTED] * [EMAIL PROTECTED]


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread phk
In message [EMAIL PROTECTED], Ju
lian Elischer writes:

Oh shut up Poul-Henning.

Try to remain civil here Julian :-)

I tried to explain the situation to you, to make sure you would not be 
tempted to do rush something which needs to take the time things take.

I know I'm on your shit list, and have been for years but don't
consider youself as spokesman for anyone but yourself.

I consider myself spokesman for nobody but myself, and to that end
I am very happy to not be on core anymore :-)

Go invade Ireland or something.

No way, it might disrupt their breweries or something.

-- 
Poul-Henning Kamp   | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED] | TCP/IP since RFC 956
FreeBSD committer   | BSD since 4.3-tahoe
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Matthew Dillon

:   The ideal situation would be to have as Matt (and the comment
:   actually) says a cpu mask of idle cpus and generate an IPI to wake up
:   CPUs sitting in HLT when something hits the runqueue, then you can
:   just hlt all of them and rely on the IPI to wake you up, or the next
:   timer tick, whichever comes first and you can really get the best of
:   both worlds.
:
:I think it's more complicated than that; you don't want to have
:anything other than the CPU that owns the per CPU run queue doing
:anything with it, which means that it's the wakeup event, not the
:arrival on the run queue, which needs to be signalled.  Then the
:CPU in question has to do it's own processing of pending wakeup
:events in order to handle the placing of the process on the run
:queue itself, rather than it being handled by another CPU.
:
:This also implies per-CPU wait queues, and a reliable message
:delivery mechanism for wakeup messages.
:
:Though it may be enough to simple mark everything on the wait
:queue as wakeup pending, for a first rev., and run the wait
:queue, it's probably not a good idea for a production system,
:since it brings back the Giant Scheduler Lock for the wait queue
:(on the plus side, items awakened could be moved to the head of
:the queue when they were marked, with the lock held anyway, and
:that would shorten the list of traversed items per CPU to all
:pending wakeup processing, rather than all queue entries).
:But it's still too ugly for words.

The HLT/clock interrupt issue is precisely what I describe in the
idle_hlt comments in i386/i386/machdep.c (last July).  I wish we had a
better mechanism then the stupid IPI stuff, like a simple per-cpu 
latch/acknowledge level interrupt (softint), but we don't.

I don't think we want to over-engineer per-cpu scheduling.  The
system really doesn't know what cpu a task is going to wind up running
on until a cpu scheduler (sched_choose()) comes along and needs to
locate the next task to run.  Too many things can happen in between the
initiation of the wait, the wakeup, and the task actually getting cpu.
Introducing a complex per-cpu wait queue or trying to do something
complex at wakeup time instead of at sched_choose() time is just going
to be a waste of time.   I think it is best to wakeup a task by placing
it on the same cpu run queue as it was previously on (which is what Jeffs
code does for the most part), and deal with task stealing in 
sched_choose().  The scheduler, when it comes time to actually switch
in the next runnable task, then deals with complexities associated with
misbalancing (i.e. cpu A is idle and ready to accept a new task, and
cpu B's run-queue has a task ready to be run).

While it is true that we would like a cpu to predominantly use the
per-cpu run-queue that it owns, we don't really lose anything in the
way of performance by allowing cpu A to add a task to cpu B's
run queue or for cpu A to steal a task from cpu B's run queue.  Sure
we have the overhead of a per-cpu mutex, but the reason we don't lose
anything is that this sort of mechanism will *STILL* scale linearly
with the number of cpus in the system (whereas the global run queue in
sched_4bsd.c constricts at a single sched_mtx and does not scale).  The
overhead of a per-cpu run-queue with a per-cpu mutex is *STILL*
effectively O(1) and the more complex overheads involved with locating
a new task to schedule from some other cpu's run queue when the current
cpu's run-queue is empty are irrelevant because you are only eating
into cycles which would otherwise be idle anyway.

-Matt
Matthew Dillon 
[EMAIL PROTECTED]


:I think something like wakeup signalling, as a message abstraction,
:is required, in any case, considering support for clustering or NUMA,
:going forward, to deal with slower signal paths on a single system
:image for much more loosely coupled CPUs.  Directly modifying queues
:in memory of other CPUs is unlikely to scale well, if it can even be
:made to work at all.
:
:-- Terry
:


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: appending files on smbfs

2003-02-01 Thread Alex

Dear/Beste Patrick,

Thursday, January 30, 2003, 8:37:04 PM, you wrote:

 has anyone every had problems with appending existing files on volumes
 mounted by smbfs or shlight?

$ echo sdsad  hey
$ echo sdsad  hey
 cannot create hey: Permission denied

You should look at permission on the windows machine if the system has
NTFS.

-- 
Best regards/Met vriendelijke groet,
Alex


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Style fixups for proc.h

2003-02-01 Thread Mark Murray
Hi

OK to commit the style fixups below? (They just make sure that all
function prototypes have all arguments named, and that all names are
protected).

int foo(int bar);

becomes

int foo(int _bar);

M

Index: proc.h
===
RCS file: /home/ncvs/src/sys/sys/proc.h,v
retrieving revision 1.291
diff -u -d -r1.291 proc.h
@@ -860,101 +860,101 @@
 
 extern int lastpid;
 
-struct proc *pfind(pid_t); /* Find process by id. */
-struct pgrp *pgfind(pid_t);/* Find process group by id. */
-struct proc *zpfind(pid_t);/* Find zombie process by id. */
+struct proc *pfind(pid_t _pid);/* Find process by id. */
+struct pgrp *pgfind(pid_t _pid);   /* Find process group by id. */
+struct proc *zpfind(pid_t _pid);   /* Find zombie process by id. */
 
-void   adjustrunqueue(struct thread *, int newpri);
-void   ast(struct trapframe *framep);
+void   adjustrunqueue(struct thread *_td, int _newpri);
+void   ast(struct trapframe *_framep);
 struct thread *choosethread(void);
-intcr_cansignal(struct ucred *cred, struct proc *proc, int signum);
-intenterpgrp(struct proc *p, pid_t pgid, struct pgrp *pgrp, struct session *sess);
-intenterthispgrp(struct proc *p, struct pgrp *pgrp);
-void   faultin(struct proc *p);
-void   fixjobc(struct proc *p, struct pgrp *pgrp, int entering);
-intfork1(struct thread *, int, int, struct proc **);
-void   fork_exit(void (*)(void *, struct trapframe *), void *,
-   struct trapframe *);
-void   fork_return(struct thread *, struct trapframe *);
-intinferior(struct proc *p);
-intleavepgrp(struct proc *p);
+intcr_cansignal(struct ucred *_cred, struct proc *_p, int _signum);
+intenterpgrp(struct proc *_p, pid_t _pgid, struct pgrp *pgrp, struct session 
+*_sess);
+intenterthispgrp(struct proc *_p, struct pgrp *_pgrp);
+void   faultin(struct proc *_p);
+void   fixjobc(struct proc *_p, struct pgrp *_pgrp, int _entering);
+intfork1(struct thread *_td, int, int, struct proc **_p);
+void   fork_exit(void (*_func)(void *_ptr, struct trapframe *_tf), void *_ptr,
+   struct trapframe *_tf);
+void   fork_return(struct thread *_td, struct trapframe *_tf);
+intinferior(struct proc *_p);
+intleavepgrp(struct proc *_p);
 void   mi_switch(void);
-intp_candebug(struct thread *td, struct proc *p);
-intp_cansee(struct thread *td, struct proc *p);
-intp_cansched(struct thread *td, struct proc *p);
-intp_cansignal(struct thread *td, struct proc *p, int signum);
-struct pargs *pargs_alloc(int len);
-void   pargs_drop(struct pargs *pa);
-void   pargs_free(struct pargs *pa);
-void   pargs_hold(struct pargs *pa);
+intp_candebug(struct thread *_td, struct proc *_p);
+intp_cansee(struct thread *_td, struct proc *_p);
+intp_cansched(struct thread *_td, struct proc *_p);
+intp_cansignal(struct thread *_td, struct proc *_p, int _signum);
+struct pargs *pargs_alloc(int _len);
+void   pargs_drop(struct pargs *_pa);
+void   pargs_free(struct pargs *_pa);
+void   pargs_hold(struct pargs *_pa);
 void   procinit(void);
 void   threadinit(void);
-void   proc_linkup(struct proc *p, struct ksegrp *kg,
-   struct kse *ke, struct thread *td);
-void   proc_reparent(struct proc *child, struct proc *newparent);
-intsecurelevel_ge(struct ucred *cr, int level);
+void   proc_linkup(struct proc *_p, struct ksegrp *_kg,
+   struct kse *_ke, struct thread *_td);
+void   proc_reparent(struct proc *_child, struct proc *_newparent);
+intsecurelevel_ge(struct ucred *_cr, int _level);
 intsecurelevel_gt(struct ucred *cr, int level);
-void   setrunnable(struct thread *);
-void   setrunqueue(struct thread *);
-void   setsugid(struct proc *p);
+void   setrunnable(struct thread *_td);
+void   setrunqueue(struct thread *_td);
+void   setsugid(struct proc *_p);
 void   sleepinit(void);
-void   stopevent(struct proc *, u_int, u_int);
+void   stopevent(struct proc *_p, u_int _arg1, u_int _arg2);
 void   cpu_idle(void);
 void   cpu_switch(void);
 void   cpu_throw(void) __dead2;
-void   unsleep(struct thread *);
-void   userret(struct thread *, struct trapframe *, u_int);
+void   unsleep(struct thread *_td);
+void   userret(struct thread *_td, struct trapframe *_tf, u_int _arg);
 
-void   cpu_exit(struct thread *);
-void   cpu_sched_exit(struct thread *);
-void   exit1(struct thread *, int) __dead2;
-void   cpu_fork(struct thread *, struct proc *, struct thread *, int);
-void   cpu_set_fork_handler(struct thread *, void (*)(void *), void *);
-void   cpu_wait(struct proc *);
+void   cpu_exit(struct thread *_td);
+void   cpu_sched_exit(struct thread *_td);
+void   exit1(struct thread *_td, int _ret) __dead2;
+void   cpu_fork(struct thread *_td1, struct proc *_p, struct thread *_td2, int _ret);
+void   cpu_set_fork_handler(struct thread *_td, void (*_pfunc)(void *_arg), void 
+*_ptr);
+void   cpu_wait(struct proc *_p);
 
 /* New in KSE. */
 struct ksegrp 

Re: Request for info from SiS chipset owners

2003-02-01 Thread Scott Sipe
atapci0: SiS 5591 ATA100 controller port 0xd800-0xd80f at device 0.1 on
pci0

agp0@pci0:0:0:  class=0x06 card=0x chip=0x07301039 rev=0x02
hdr=0x00
atapci0@pci0:0:1:   class=0x010180 card=0x80321043 chip=0x55131039
rev=0xd0 hdr=0x00
isab0@pci0:1:0: class=0x060100 card=0x chip=0x00081039 rev=0x00
hdr=0x00
ohci0@pci0:1:2: class=0x0c0310 card=0x70011039 chip=0x70011039 rev=0x07
hdr=0x00
ohci1@pci0:1:3: class=0x0c0310 card=0x70001039 chip=0x70011039 rev=0x07
hdr=0x00
pcm0@pci0:1:4:  class=0x040100 card=0x80321043 chip=0x70181039 rev=0x02
hdr=0x00
pcib1@pci0:2:0: class=0x060400 card=0x chip=0x00011039 rev=0x00
hdr=0x01
rl0@pci0:9:0:   class=0x02 card=0x80261043 chip=0x813910ec rev=0x10
hdr=0x00
xl0@pci0:13:0:  class=0x02 card=0x100010b7 chip=0x920010b7 rev=0x78
hdr=0x00
wi0@pci0:16:0:  class=0x028000 card=0x41051385 chip=0x38731260 rev=0x01
hdr=0x00
none0@pci1:0:0: class=0x03 card=0x80321043 chip=0x63001039 rev=0x31
hdr=0x00

Scott
- Original Message -
From: Soeren Schmidt [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Sent: Saturday, February 01, 2003 6:02 AM
Subject: Request for info from SiS chipset owners



 I'm currently in the midst of an ATA chipset support mega rewrite/update,
 and the last item on the list is SiS support.

 That where _you_ come into the picture, I need a pciconf -l from your
 SiS based system!

 Just reply to this message with the output from pciconf -l and you
 have helped me sort out the myriads of SiS chipsets out there.

 -Søren

 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with unsubscribe freebsd-current in the body of the message





To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Julian Elischer
I don't know about the protection with a '_'.

It's not standard and usually the name matches that used in the actual
function.

It's certainly not part of style(9) that I've ever noticed
and it's generally noy done that way.. is there a move to do this on all
the other files?


On Sat, 1 Feb 2003, Mark Murray wrote:

 Hi
 
 OK to commit the style fixups below? (They just make sure that all
 function prototypes have all arguments named, and that all names are
 protected).
 
 int foo(int bar);
 
 becomes
 
 int foo(int _bar);
 
 M
 
 Index: proc.h
 ===
 RCS file: /home/ncvs/src/sys/sys/proc.h,v
 retrieving revision 1.291
 diff -u -d -r1.291 proc.h
 @@ -860,101 +860,101 @@
  
  extern int lastpid;
  
 -struct   proc *pfind(pid_t); /* Find process by id. */
 -struct   pgrp *pgfind(pid_t);/* Find process group by id. */
 -struct   proc *zpfind(pid_t);/* Find zombie process by id. */
 +struct   proc *pfind(pid_t _pid);/* Find process by id. */
 +struct   pgrp *pgfind(pid_t _pid);   /* Find process group by id. */
 +struct   proc *zpfind(pid_t _pid);   /* Find zombie process by id. */
  
 -void adjustrunqueue(struct thread *, int newpri);
 -void ast(struct trapframe *framep);
 +void adjustrunqueue(struct thread *_td, int _newpri);
 +void ast(struct trapframe *_framep);
  struct   thread *choosethread(void);
 -int  cr_cansignal(struct ucred *cred, struct proc *proc, int signum);
 -int  enterpgrp(struct proc *p, pid_t pgid, struct pgrp *pgrp, struct session *sess);
 -int  enterthispgrp(struct proc *p, struct pgrp *pgrp);
 -void faultin(struct proc *p);
 -void fixjobc(struct proc *p, struct pgrp *pgrp, int entering);
 -int  fork1(struct thread *, int, int, struct proc **);
 -void fork_exit(void (*)(void *, struct trapframe *), void *,
 - struct trapframe *);
 -void fork_return(struct thread *, struct trapframe *);
 -int  inferior(struct proc *p);
 -int  leavepgrp(struct proc *p);
 +int  cr_cansignal(struct ucred *_cred, struct proc *_p, int _signum);
 +int  enterpgrp(struct proc *_p, pid_t _pgid, struct pgrp *pgrp, struct session 
*_sess);
 +int  enterthispgrp(struct proc *_p, struct pgrp *_pgrp);
 +void faultin(struct proc *_p);
 +void fixjobc(struct proc *_p, struct pgrp *_pgrp, int _entering);
 +int  fork1(struct thread *_td, int, int, struct proc **_p);
 +void fork_exit(void (*_func)(void *_ptr, struct trapframe *_tf), void *_ptr,
 + struct trapframe *_tf);
 +void fork_return(struct thread *_td, struct trapframe *_tf);
 +int  inferior(struct proc *_p);
 +int  leavepgrp(struct proc *_p);
  void mi_switch(void);
 -int  p_candebug(struct thread *td, struct proc *p);
 -int  p_cansee(struct thread *td, struct proc *p);
 -int  p_cansched(struct thread *td, struct proc *p);
 -int  p_cansignal(struct thread *td, struct proc *p, int signum);
 -struct   pargs *pargs_alloc(int len);
 -void pargs_drop(struct pargs *pa);
 -void pargs_free(struct pargs *pa);
 -void pargs_hold(struct pargs *pa);
 +int  p_candebug(struct thread *_td, struct proc *_p);
 +int  p_cansee(struct thread *_td, struct proc *_p);
 +int  p_cansched(struct thread *_td, struct proc *_p);
 +int  p_cansignal(struct thread *_td, struct proc *_p, int _signum);
 +struct   pargs *pargs_alloc(int _len);
 +void pargs_drop(struct pargs *_pa);
 +void pargs_free(struct pargs *_pa);
 +void pargs_hold(struct pargs *_pa);
  void procinit(void);
  void threadinit(void);
 -void proc_linkup(struct proc *p, struct ksegrp *kg,
 - struct kse *ke, struct thread *td);
 -void proc_reparent(struct proc *child, struct proc *newparent);
 -int  securelevel_ge(struct ucred *cr, int level);
 +void proc_linkup(struct proc *_p, struct ksegrp *_kg,
 + struct kse *_ke, struct thread *_td);
 +void proc_reparent(struct proc *_child, struct proc *_newparent);
 +int  securelevel_ge(struct ucred *_cr, int _level);
  int  securelevel_gt(struct ucred *cr, int level);
 -void setrunnable(struct thread *);
 -void setrunqueue(struct thread *);
 -void setsugid(struct proc *p);
 +void setrunnable(struct thread *_td);
 +void setrunqueue(struct thread *_td);
 +void setsugid(struct proc *_p);
  void sleepinit(void);
 -void stopevent(struct proc *, u_int, u_int);
 +void stopevent(struct proc *_p, u_int _arg1, u_int _arg2);
  void cpu_idle(void);
  void cpu_switch(void);
  void cpu_throw(void) __dead2;
 -void unsleep(struct thread *);
 -void userret(struct thread *, struct trapframe *, u_int);
 +void unsleep(struct thread *_td);
 +void userret(struct thread *_td, struct trapframe *_tf, u_int _arg);
  
 -void cpu_exit(struct thread *);
 -void cpu_sched_exit(struct thread *);
 -void exit1(struct thread *, int) __dead2;
 -void cpu_fork(struct thread *, struct proc *, struct thread *, int);
 -void cpu_set_fork_handler(struct thread *, void (*)(void *), void *);
 -void cpu_wait(struct proc *);
 +void cpu_exit(struct thread *_td);
 +void 

Re: Request for info from SiS chipset owners

2003-02-01 Thread Doug Barton
Folks,

Please send this info to SOREN, not to the list.

Thanks,

Doug

-- 

If it's moving, encrypt it. If it's not moving, encrypt
  it till it moves, then encrypt it some more.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



trouble with ogle performance after going to 5.0-R

2003-02-01 Thread David Syphers
I recently installed 5.0-R (and KDE 3.1, thus the cc:). Ogle now has terrible 
performance - very jerky. Last weekend, when this computer (an Athlon XP 
1800+) had 4-stable and KDE 3.0.5, ogle perfomance on the same DVD was 
perfectly smooth. Since ogle didn't change, I assume it's something to do 
with FreeBSD. Any idea what could be causing it?

At first I thought it was that I hadn't put CPU_ENABLE_SSE in my kernel, like 
I had in 4-stable, but after putting it in, the performance is still just as 
bad. While playing a DVD the load goes from about 0.02 to about 1.5. 
Unfortunately I don't know what it did under 4-stable, but if anyone else can 
compare...

-David

-- 
Whatever it is that the government does, sensible Americans
would prefer that the government does it to somebody else. 
This is the idea behind foreign policy.
-P. J. O'Rourke

Astronomy and Astrophysics Center
The University of Chicago

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Mark Murray
Julian Elischer writes:
 I don't know about the protection with a '_'.
 
 It's not standard and usually the name matches that used in the actual
 function.

When the prototype parameter name matches a local variable, the C compiler
(and lint) whine about clashes between names in local/global namespace.

2 ways to fix this are to protect the prototype argument names with the
_, or to remove the argument name altogether.

proc.h has no clear guidance, in that recent commits don't stick to
the established style of the file. Some newish prototypes have a
mixture of named/unnamed args in the same function. While I was
making all prototypes' args named, I protected them.

I'd like to fix the warnings, and I'd like the file to be consistent
WRT argument naming.

 It's certainly not part of style(9) that I've ever noticed
 and it's generally noy done that way.. is there a move to do this on all
 the other files?

There is a move to fix lint(1) warnings.

M
--
Mark Murray
iumop ap!sdn w,I idlaH

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Daniel Eischen
On Sat, 1 Feb 2003, Mark Murray wrote:
 Julian Elischer writes:
  I don't know about the protection with a '_'.
  
  It's not standard and usually the name matches that used in the actual
  function.
 
 When the prototype parameter name matches a local variable, the C compiler
 (and lint) whine about clashes between names in local/global namespace.
 
 2 ways to fix this are to protect the prototype argument names with the
 _, or to remove the argument name altogether.

I'd rather have the names removed altogether.

-- 
Dan Eischen


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Question about devd concept

2003-02-01 Thread Kevin Oberman
 Date: Sat, 1 Feb 2003 19:20:12 +0100
 From: Oliver Brandmueller [EMAIL PROTECTED]
 Sender: [EMAIL PROTECTED]
 
 Hi,
 
 I'm currently experimenting with 5-CURRENT on my Notebook an have a
 question regarding the concept of devd.
 
 With 4-STABLE I had pccardd running. Whenever a pccard was inserted I
 had pccardd starting the corresponding scripts. I have configured devd
 to do so now (especially for my wavelan pccard). So far everything
 works, except for one case: When the pccard is already inserted during
 boot, devd does not recognize the card as newly inserted device (of
 course, it's already there). So I have currently setup a script in
 /usr/local/etc/rc.d which starts the script corresponding to the wavelan
 pccard, if interface wi0 is found during boot. I think this cannot be
 the considered solution for that problem?
 
 What am I missing about the concept of devd?

While I think you have the concept down fine, the execution may still
be a bit fuzzy in places.

If the device is in place when the system boots, devd should not be
required, as it should be probed in the traditional manner. But this
does not seem to execute the added things that need to be done to
bring up a new network interface. After the system is up I need to
execute /etc/pccard_ether to get the interface on-line.

I have two Xircom cards, an old RE-100 16-bit card and a newer RBEM-56
CardBus Ethernet/modem card. The former uses if_xe and the latter uses
if_dc. The behavior is very inconsistent.

If I have if_xe loaded at boot, the RE-100 comes up fine. It has the
annoying watchdog timeout and then comes up fine. If I insert the card
into the running system, it also works, but prints out a failure to
load the driver since the driver is already present. But it I don't
have the drive in the kernel when I insert the card, it fails to
initialize. 

The CardBus unit seems to only work when the driver is loaded at boot
time and then the Ethernet part simply works. Unfortunately, the modem
does not as the devices are not created in /dev by devfs. (I suspect I
can get this working once I get devfs figured out a bit better.) But,
I still need to execute /etc/paccard_ether before the Ethernet is
usable. 

If I insert the card into a running system, I just get continuous
watchdog timeouts and can't do much until I eject the card.

I hope to have some time Monday to sit down and try as many
combinations of card insertions/ejections and driver loading as
possible to see if I can see a clear pattern to the operation of these
cards. Maybe that will provide a pointer as to where things are
breaking down in both of our cases.

R. Kevin Oberman, Network Engineer
Energy Sciences Network (ESnet)
Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab)
E-mail: [EMAIL PROTECTED]  Phone: +1 510 486-8634

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Matthew Dillon
:Julian Elischer writes:
: I don't know about the protection with a '_'.
: 
: It's not standard and usually the name matches that used in the actual
: function.
:
:When the prototype parameter name matches a local variable, the C compiler
:(and lint) whine about clashes between names in local/global namespace.

I've never in my life heard of this behavior before, what compiler
arguments reproduce it?

:2 ways to fix this are to protect the prototype argument names with the
:_, or to remove the argument name altogether.

If it is a problem, why not simply use the same variable names that are
declared in the procedure proper?  The underscore looks ugly and out of
place and doesn't make that much sense to me.

-Matt


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: trouble with ogle performance after going to 5.0-R

2003-02-01 Thread Scott Long
David Syphers wrote:


I recently installed 5.0-R (and KDE 3.1, thus the cc:). Ogle now has 
terrible
performance - very jerky. Last weekend, when this computer (an Athlon XP
1800+) had 4-stable and KDE 3.0.5, ogle perfomance on the same DVD was
perfectly smooth. Since ogle didn't change, I assume it's something to do
with FreeBSD. Any idea what could be causing it?

At first I thought it was that I hadn't put CPU_ENABLE_SSE in my 
kernel, like
I had in 4-stable, but after putting it in, the performance is still 
just as
bad. While playing a DVD the load goes from about 0.02 to about 1.5.
Unfortunately I don't know what it did under 4-stable, but if anyone 
else can
compare...

-David

First, 5.0 does suffer a significant slowdown in many areas compared to 
4.x.  Ogle plays fine on my P4-1.6Ghz laptop, though.  Have you made 
sure that the DVD drive is using DMA?  'sysctl hw.ata.atapi_dma' will 
tell you, and can be set at boot from /boot/loader.conf.  Also, I 
beleive that if you enable the SSE instructions that the mpeg2 and audio 
libraries that ogle uses will have to be recompiled to make sure that 
they generate the SSE instructions.

Scott


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message


Re: trouble with ogle performance after going to 5.0-R

2003-02-01 Thread Martin Blapp

Hi,

hw.ata.atapi_dma=1 ?

Martin

Martin Blapp, [EMAIL PROTECTED] [EMAIL PROTECTED]
--
ImproWare AG, UNIXSP  ISP, Zurlindenstrasse 29, 4133 Pratteln, CH
Phone: +41 61 826 93 00 Fax: +41 61 826 93 01
PGP: finger -l [EMAIL PROTECTED]
PGP Fingerprint: B434 53FC C87C FE7B 0A18 B84C 8686 EF22 D300 551E
--

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Mark Murray
 :When the prototype parameter name matches a local variable, the C compiler
 :(and lint) whine about clashes between names in local/global namespace.
 
 I've never in my life heard of this behavior before, what compiler
 arguments reproduce it?

WARNS=5.

 :2 ways to fix this are to protect the prototype argument names with the
 :_, or to remove the argument name altogether.
 
 If it is a problem, why not simply use the same variable names that are
 declared in the procedure proper?  The underscore looks ugly and out of
 place and doesn't make that much sense to me.

Because this doesn't always help, or if it did, the diffs are often
much bigger and to many more files.

M
--
Mark Murray
iumop ap!sdn w,I idlaH

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Steve Kargl
On Sat, Feb 01, 2003 at 03:04:32PM -0800, Julian Elischer wrote:
 I don't know about the protection with a '_'.
 
 It's not standard and usually the name matches that used in the actual
 function.
 
 It's certainly not part of style(9) that I've ever noticed
 and it's generally noy done that way.. is there a move to do this on all
 the other files?
 

man 9 style

 In header files visible to userland applications, prototypes that are
 visible must use either ``protected'' names (ones beginning with an
 underscore) or no names with the types.  It is preferable to use pro-
 tected names.  E.g., use:

 voidfunction(int);

 or:

 voidfunction(int _fd);

-- 
Steve

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Bakul Shah
 Julian Elischer writes:
  I don't know about the protection with a '_'.
  
  It's not standard and usually the name matches that used in the actual
  function.
 
 When the prototype parameter name matches a local variable, the C compiler
 (and lint) whine about clashes between names in local/global namespace.

According to C99, a function prototype has its own scope or
name space.  It terminates at the end of the function
declarator.  Basically naming a parameter in a function
prototype is an aide to the human user; it is not needed for
correct compilation[1] so this warning is bogus.  As the
spec says in section 6.7.5.3 (according the draft I have)

The identifiers [naming parameters] are declared for
descriptive purposes only and go out of scope at the end
of the [prototype] declaration.

I can't see what actual error is avoided by this warning.

 2 ways to fix this are to protect the prototype argument names with the
 _, or to remove the argument name altogether.

Why not fix the compiler  lint instead of cluttering up
declarations?

-- bakul

[1] Except for what is needed for declaring flexible or
variable length array parameters.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Juli Mallett
* De: Bakul Shah [EMAIL PROTECTED] [ Data: 2003-02-01 ]
[ Subjecte: Re: Style fixups for proc.h ]
  Julian Elischer writes:
   I don't know about the protection with a '_'.
   
   It's not standard and usually the name matches that used in the actual
   function.
  
  When the prototype parameter name matches a local variable, the C compiler
  (and lint) whine about clashes between names in local/global namespace.
 
 According to C99, a function prototype has its own scope or
 name space.  It terminates at the end of the function
 declarator.  Basically naming a parameter in a function
 prototype is an aide to the human user; it is not needed for
 correct compilation[1] so this warning is bogus.  As the
 spec says in section 6.7.5.3 (according the draft I have)
 
 The identifiers [naming parameters] are declared for
 descriptive purposes only and go out of scope at the end
 of the [prototype] declaration.
 
 I can't see what actual error is avoided by this warning.

If a named prototype clashes with something in global scope,
isn't it still a shadowing issue?  They should probably never
be *in* scope.
-- 
Juli Mallett [EMAIL PROTECTED]
AIM: BSDFlata -- IRC: juli on EFnet
OpenDarwin, Mono, FreeBSD Developer
ircd-hybrid Developer, EFnet addict
FreeBSD on MIPS-Anything on FreeBSD

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Matthew Dillon

:WARNS=5.

This isn't helpful.  I tried adding every -W switch in bsd.sys.mk
and couldn't reproduce the problem.  What compiler option is causing
the problem?

: :2 ways to fix this are to protect the prototype argument names with the
: :_, or to remove the argument name altogether.
: 
: If it is a problem, why not simply use the same variable names that are
: declared in the procedure proper?  The underscore looks ugly and out of
: place and doesn't make that much sense to me.
:
:Because this doesn't always help, or if it did, the diffs are often
:much bigger and to many more files.
:
:M
:--
:Mark Murray
:iumop ap!sdn w,I idlaH

   Ok, now I'm really confused.  How can it not always help?  If the 
   arguments are the same as the arguments declared in the underlying
   procedures why would an error still be produced?  The diff you produced
   for proc.h is *already* fairly extensive.  If you want to fix this, 
   you only need to fix the lines generating compiler warnings.

   I really dislike screwing around with source code to work around
   bugs in the the compiler, or lint.  Given the choice of underlines
   or leaving the arguments unnamed, I would leave them unnamed.  Or I
   would figure out and remove whatever broken compiler option is generating
   the warning in the first place.

-Matt
Matthew Dillon 
[EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Mark Murray
 Why not fix the compiler  lint instead of cluttering up
 declarations?

Can we at least get proc.h to have a consistent style of
function parameter usage?

M
--
Mark Murray
iumop ap!sdn w,I idlaH

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Matthew Dillon

:If a named prototype clashes with something in global scope,
:isn't it still a shadowing issue?  They should probably never
:be *in* scope.
:-- 
:Juli Mallett [EMAIL PROTECTED]
:AIM: BSDFlata -- IRC: juli on EFnet

I finally was able to reproduce the bug.  But it's an obvious bug in the
compiler at least in regards to named arguments in prototypes.
The -Wshadow switch causes the error message to be produced and it
occurs both for named arguments in prototypes and, named arguments
in the procedure proper, and named locals in the procedure.

The solution is simply to name the arguments in the prototype the same
as the arguments in the procedure.  If we are going to use -Wshadow then
the arguments in the procedure will generate the error too so naming
the prototype arguments the same will not make things any better OR worse.

So the prototype arguments should either be named the same as those in the
procedure proper, or should not be named at all.  

We definitely should not go adding underscores to the prototypes to
work around this problem.

-Matt
Matthew Dillon 
[EMAIL PROTECTED]

int x;

int fubar(int x);


int
fubar(int y)
{
int x = 2;

++x;
y = 1;
return(1);
}

int
fubar2(int x)
{
++x;
return(1);
}


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



alpha tinderbox failure

2003-02-01 Thread Dag-Erling Smorgrav
--
 Rebuilding the temporary build tree
--
 stage 1: bootstrap tools
--
 stage 2: cleaning up the object tree
--
 stage 2: rebuilding the object tree
--
 stage 2: build tools
--
 stage 3: cross tools
--
 stage 4: populating /home/des/tinderbox/alpha/obj/h/des/src/alpha/usr/include
--
 stage 4: building libraries
--
 stage 4: make dependencies
--
 stage 4: building everything..
--
 Kernel build for GENERIC started on Sat Feb  1 15:17:17 PST 2003
--
 Kernel build for GENERIC completed on Sat Feb  1 15:50:42 PST 2003
--
 Kernel build for LINT started on Sat Feb  1 15:50:43 PST 2003
--
=== vinum
Makefile, line 4447: warning: duplicate script for target geom_bsd.o ignored
/h/des/src/sys/dev/lmc/if_lmc.c:32:2: warning: #warning The lmc driver is broken and 
is not compiled with LINT
/h/des/src/sys/dev/pdq/pdq.c: In function `pdq_initialize':
/h/des/src/sys/dev/pdq/pdq.c:1606: warning: cast discards qualifiers from pointer 
target type
/h/des/src/sys/pci/meteor.c:149:2: warning: #warning The meteor driver is broken and 
is not compiled with LINT
/h/des/src/sys/pci/simos.c:30:2: warning: #warning The simos driver is broken and is 
not compiled with LINT
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_open':
/h/des/src/sys/dev/gfb/gfb_pci.c:268: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:268: (Each undeclared identifier is reported only once
/h/des/src/sys/dev/gfb/gfb_pci.c:268: for each function it appears in.)
cc1: warnings being treated as errors
/h/des/src/sys/dev/gfb/gfb_pci.c:275: warning: passing arg 1 of `genfbopen' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_close':
/h/des/src/sys/dev/gfb/gfb_pci.c:284: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:285: warning: passing arg 1 of `genfbclose' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_read':
/h/des/src/sys/dev/gfb/gfb_pci.c:293: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:294: warning: passing arg 1 of `genfbread' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_write':
/h/des/src/sys/dev/gfb/gfb_pci.c:302: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:303: warning: passing arg 1 of `genfbwrite' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_ioctl':
/h/des/src/sys/dev/gfb/gfb_pci.c:311: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:312: warning: passing arg 1 of `genfbioctl' from 
incompatible pointer type
/h/des/src/sys/dev/gfb/gfb_pci.c: In function `pcigfb_mmap':
/h/des/src/sys/dev/gfb/gfb_pci.c:320: `gfb_devclass' undeclared (first use in this 
function)
/h/des/src/sys/dev/gfb/gfb_pci.c:321: warning: passing arg 1 of `genfbmmap' from 
incompatible pointer type
*** Error code 1

Stop in /h/des/obj/h/des/src/sys/LINT.
*** Error code 1

Stop in /h/des/src.
*** Error code 1

Stop in /h/des/src.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



subscribe

2003-02-01 Thread Taylor Dondich


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



subscribe

2003-02-01 Thread Taylor Dondich


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Garrett Wollman
On Sat, 01 Feb 2003 16:02:57 -0800, Bakul Shah [EMAIL PROTECTED] said:

 I can't see what actual error is avoided by this warning.

It's a potential error -- if there were an actual error, it would be
an error and not a warning.

The issue is simple:

Say you have an object and a function declared in global scope:

int foo;
/* many lines of declarations */
/* perhaps this is even in a different file */
void bar(quux_t foo);

At some point, somebody changes the spelling of `foo' and adds a
preprocessor macro for compatibility:

union baz {
int foo;
struct frotz *gorp;
} foobaz;
#define foo foobaz.foo

What happens to the declaration of that function?  Well,

void bar(quux_t foobaz.foo);

is a syntax error.

My personal opinion, which is different from what style(9) recommends,
is that parameter names should be omitted for all functions, EXCEPT
those with ambiguous parameter types.  Most functions in the kernel
only operate on one object of a given type at a time, so even without
the names it is (or should be) obvious what the object is used for.
Some functions, however, take multiple objects of the same type (e.g.,
two different sorts of flags); in these cases some additional help may
be warranted.

In the case of user headers, if parameter names are included, they
MUST be protected, because they would otherwise be polluting the
user's namespace.  Hence, most headers historically do not use
parameter names.

-GAWollman


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Garrett Wollman
On Sat, 1 Feb 2003 19:31:47 -0500 (EST), I wrote:

   union baz {
   int foo;
   struct frotz *gorp;
   } foobaz;
   #define foo foobaz.foo

Oops... What I meant to say:

union baz {
int bazu_foo;
struct frotz *bazu_gorp;
} foobaz;
#define foo foobaz.bazu_foo

With this emendation, my post will actually make sense.

-GAWollman


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Mark Murray
Matthew Dillon writes:
 
 :WARNS=5.
 
 This isn't helpful.  I tried adding every -W switch in bsd.sys.mk
 and couldn't reproduce the problem.  What compiler option is causing
 the problem?

I don't know which specific one.

Ok, now I'm really confused.  How can it not always help?  If the 
arguments are the same as the arguments declared in the underlying
procedures why would an error still be produced?  The diff you produced
for proc.h is *already* fairly extensive.  If you want to fix this, 
you only need to fix the lines generating compiler warnings.

arg in a function prototype gets confused with variable arg in
some function(s).

I really dislike screwing around with source code to work around
bugs in the the compiler, or lint.  Given the choice of underlines
or leaving the arguments unnamed, I would leave them unnamed.  Or I
would figure out and remove whatever broken compiler option is generating
the warning in the first place.

Then can we just get the proc.h prototypes into a (any) consistent
style?

M
--
Mark Murray
iumop ap!sdn w,I idlaH

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Matthew Dillon
:I really dislike screwing around with source code to work around
:bugs in the the compiler, or lint.  Given the choice of underlines
:or leaving the arguments unnamed, I would leave them unnamed.  Or I
:would figure out and remove whatever broken compiler option is generating
:the warning in the first place.
:
:Then can we just get the proc.h prototypes into a (any) consistent
:style?
:
:M
:--
:Mark Murray

Lets ask ourselves what the goal of the named prototypes is... the
compiler doesn't need them, obviously, so one would presume that the
goal is human readability.

So if we care about human readability we should simply name them after
the argument names used in the procedures proper.  If we don't care 
about human readability we should omit the names entirely.  

An underscore would be detrimental to human readability.  It makes the
prototypes look rather nasty when I look at the fully patched proc.h,
and also makes them different from the arguments as declared in the
procedures proper.

A quick perusal of include files shows that we use a mix.  Examples:

sys/acl.h  -- looks like the authors tried to use the underscore technique
  but forgot a couple.

sys/aio.h  -- a mix of named (without underscore) and unnamed.

sys/blist.h -- named prototypes without underscore (mine originally)

sys/buf.h  -- a mix of named (without underscore) and unnamed.  Mostly
 unnamed, and __P() is still being used.  (the named one
 is probably mine).

sys/callout.h -- unnamed.

sys/conf.h  -- mostly named (without underscore) (not mine)

sys/cons.h  -- unnamed

And it goes on.  Quite a mess we have, actually.  We still have __P in
many places.  The newest header file would arguably be acl.h in which
the author used underscores.  I can't say I like the way it reads on the
screen.  Older header files either still have __P, don't have __P and
the arguments are named (typically without an underscore), or mix with
some of the arguments named and some not (some wholely not).

-Matt
Matthew Dillon 
[EMAIL PROTECTED]

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Bakul Shah
  I can't see what actual error is avoided by this warning.

s/actual/potential/

 
 If a named prototype clashes with something in global scope,
 isn't it still a shadowing issue?  They should probably never
 be *in* scope.

Nothing is being shadowed.  Paramater names in a function
prototype (as opposed to a function definition) are simply
not relevant to the compiler (their distinctness, type and
positions are but not the actual names).  No potential bug is
being hidden by saying, for example,

int x;
int foo(int x);

It is perfectly fine to later define foo as

int foo(int y)
{
return x + y;
}

The compiler should simply discard any parameter names in a
prototype once the prototype is digested and C programmers
need to know that.  Now if parameter y shadows a global y one
may want to be warned about it.

Garrett gives an example:

 Say you have an object and a function declared in global scope:
 
   int foo;
   /* many lines of declarations */
   /* perhaps this is even in a different file */
   void bar(quux_t foo);
 
 At some point, somebody changes the spelling of `foo' and adds a
 preprocessor macro for compatibility:
 
   union baz {
   int foo;
   struct frotz *gorp;
   } foobaz;
   #define foo foobaz.foo
 
 What happens to the declaration of that function?  Well,
 
   void bar(quux_t foobaz.foo);
 
 is a syntax error.

This sort of problem can occur when you have any two objects named the
same.  Consider:

struct dumb { int foo; };

After the above redefinition this defn won't compile (even
after his amendation:-).

Not naming parameters is one solution but with some loss of
perspicuity.  Consider:

int* make_matrix(int, int);
versus
int* make_matrix(int rows, int columns);

-- bakul

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: trouble with ogle performance after going to 5.0-R

2003-02-01 Thread David Syphers
On Saturday 01 February 2003 05:43 pm, Scott Long wrote:
 Have you made
 sure that the DVD drive is using DMA?  'sysctl hw.ata.atapi_dma' will
 tell you, and can be set at boot from /boot/loader.conf.

This was the main problem. Turning on DMA makes everything run smoothly and 
drops the load averages significantly. I must have made this change to my 4.x 
system once about a year ago, and completely forgotten about it since. I 
should write an addition to the handbook about this... Thanks!

-David

-- 
Whatever it is that the government does, sensible Americans
would prefer that the government does it to somebody else. 
This is the idea behind foreign policy.
-P. J. O'Rourke

Astronomy and Astrophysics Center
The University of Chicago

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Brad Knowles
At 10:47 AM -0800 2003/02/01, Julian Elischer wrote:


 still no comments?

 this patch seems to be working, but a review from another developer
 would be good.. particularly re: the point mentionned..


	You first announced the split-out patch at Sat, 1 Feb 2003 
02:59:24 -0800 (PST).  The date/time stamp on the message that I am 
replying to is Sat, 1 Feb 2003 10:47:44 -0800 (PST).  That's 
something around seven hours and forty-five minutes, unless I have 
miscalculated.

	Is it really normal to expect replies within that kind of a time 
frame, especially since we're talking about 3:00 AM to 10:45 AM, and 
most people are likely to be asleep?  Granted, not everyone is in 
PST, but it's still a relatively quiet period of time for most people 
outside of Asia, and we don't seem to have a whole lot of people from 
those time zones on this list.


	I'm not questioning the patch at all, just the apparent impatience.

	If I am wrong and it is normal to expect a reasonable response 
within this period of time and within this particular period of time 
on a Saturday morning, please let me know.

--
Brad Knowles, [EMAIL PROTECTED]

They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-Benjamin Franklin, Historical Review of Pennsylvania.

GCS/IT d+(-) s:+(++): a C++(+++)$ UMBSHI$ P+++ L+ !E-(---) W+++(--) N+
!w--- O- M++ V PS++(+++) PE- Y+(++) PGP+++ t+(+++) 5++(+++) X++(+++) R+(+++)
tv+(+++) b+() DI+() D+(++) G+() e++ h--- r---(+++)* z(+++)

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message


Re: split out patch

2003-02-01 Thread Matthew Dillon

:02:59:24 -0800 (PST).  The date/time stamp on the message that I am 
:replying to is Sat, 1 Feb 2003 10:47:44 -0800 (PST).  That's 
:something around seven hours and forty-five minutes, unless I have 
:miscalculated.
:
:   Is it really normal to expect replies within that kind of a time 
:frame, especially since we're talking about 3:00 AM to 10:45 AM, and 
:most people are likely to be asleep?  Granted, not everyone is in 
:PST, but it's still a relatively quiet period of time for most people 
:...
:   I'm not questioning the patch at all, just the apparent impatience.
:-- 
:Brad Knowles, [EMAIL PROTECTED]

Well, it is an active conversation/thread.  Either people care enough
to stay involved or they don't.  Considering how much time has been
wasted so far bickering back and forth over a commit that was *almost*
corrected before the inevitable calls for a backout, and the fairly 
hostile history between some of the participants, I can understand 
Julian's impatience.

-Matt


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Julian Elischer


On Sun, 2 Feb 2003, Mark Murray wrote:

  Why not fix the compiler  lint instead of cluttering up
  declarations?
 
 Can we at least get proc.h to have a consistent style of
 function parameter usage?

Sure. let's be consistent with all the other .h files in the kernel.
what does a quick census show?

 
 M
 --
 Mark Murray
 iumop ap!sdn w,I idlaH
 
 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with unsubscribe freebsd-current in the body of the message
 


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Hyperthreading and machdep.cpu_idle_hlt

2003-02-01 Thread Terry Lambert
Matthew Dillon wrote:
 The HLT/clock interrupt issue is precisely what I describe in the
 idle_hlt comments in i386/i386/machdep.c (last July).  I wish we had a
 better mechanism then the stupid IPI stuff, like a simple per-cpu
 latch/acknowledge level interrupt (softint), but we don't.

Thanks, Intel.  8-).


 I don't think we want to over-engineer per-cpu scheduling.  The
 system really doesn't know what cpu a task is going to wind up running
 on until a cpu scheduler (sched_choose()) comes along and needs to
 locate the next task to run.  Too many things can happen in between the
 initiation of the wait, the wakeup, and the task actually getting cpu.
 Introducing a complex per-cpu wait queue or trying to do something
 complex at wakeup time instead of at sched_choose() time is just going
 to be a waste of time.   I think it is best to wakeup a task by placing
 it on the same cpu run queue as it was previously on (which is what Jeffs
 code does for the most part),

The approach I've *always* advocated involves per-CPU run queues.

While it's possible to implement affinity and negaffinity with a
global queue, like Linux did, it's not really a good idea.  I know
that the current Linux code works, because Ingo Molnar put a huge
amount of effort into it.  However, the problem of affinity is not
NP-complete, and it's not really possible to deal with it with a
single queue.

Noting the process which is awoken gets on the same CPU ready-to-run
queue is just an obvious way of dealing with CPU affinity.  It fails
to deal with negaffinity, which is necessary for parallel execution,
and it fails to deal with the issue of eliminating locks: you still
get the TLB shootdowns, cache line invalidations, and inter-APIC
arbitration traffic, even if you don't issue an explicit IPI.


 and deal with task stealing in
 sched_choose().

A task stealing or pull approach to balancing is just plain
wrong.  It can't deal with transient load spikes, which should
be expected in any heterogeneous load situation.  This is the
reason you never see anyone running benchmarks on such a system,
without the system being otherwise idle, and without homogeneous
test loads: hetergenous test loads would fail to show improvement,
due to excessive bouncing.

The other problem with a pull model is that it requires that the
per CPU scheduler queue be locked on all accesses, so a different
CPU can lock it to traverse it to pull new tasks for itself.

Finally, the pull model is very hard to deal with SMT, in terms
of making negaffinity decisions (you have to know too much), or
giving an intentional affinity bias (e.g. stay on the same physical
CPU, but go to the other side to avoid cache-busting).

By going to a push model, you limit locking to the migration code
path, and a per-CPU check for a non-NULL per-CPU migration list
head can be done without acquiring the lock that must be acquired
to pull data off the migration queue, or to push tasks off to
another CPU (locking the target's queue for the operation).  What
that means is no locking in the common case.  And no cache line
invalidation, and no TLB shootdown, and no inter-APIC arbitration.

Actually, it's very easy to compare these models implicitly, by
running a single CPU with SMT enabled, and comparing it to two
identical CPUs, with SMT disabled, such that the only real change
is the shared parts, and the lack of the cache, TLB, and APIC crap
in the first case.  With the inherent stalls from shared resources
in the SMT case, you'd expect a true SMP to have significantly
higher performance than SMT.  But that's not what you see, even
with Jeff's new scheduler.

 The scheduler, when it comes time to actually switch
 in the next runnable task, then deals with complexities associated with
 misbalancing (i.e. cpu A is idle and ready to accept a new task, and
 cpu B's run-queue has a task ready to be run).

Yes, currently, and this is wrong.  Or rather, the underutilized
CPU should not be doing the balancing, if it has to stall the most
heavily loaded CPU in order to do it... and therefore, pull is
wrong.

What *should* happen is that, at the time of the next context switch,
the heavily loaded CPU should decide to shed load.  Proper hysteresis
really wants that decision to be made periodically, with a periodicity
equal to once per (N+1) entries into the per CPU scheduler, where N is
the number of CPUs participating in the SMP region in which tasks may
be migrated (as part of the strategy for avoiding excessive migration).

If this decision can be made on a single figure of merit, which we'll
call load, and the figure is stored in an atomic (e.g. integer)
data area, then it can be read without locks.  Since it's only written
by the CPU for whom it's the figure of merit, again, no locks are
required to arbitrate the process of determining a load imbalace.



 While it is true that we would like a cpu to predominantly 

Re: cvs commit: src/sbin/disklabel disklabel.8 disklabel.c

2003-02-01 Thread Chris Pepper
At 1:01 PM +0100 2003/01/26, [EMAIL PROTECTED] wrote:

In message [EMAIL PROTECTED], Ruslan Ermilov writes:



Welcome to the club if people who was bitten by the poor design
choices in the BSD disklabel.

 Now the

question.  Where is the code in the kernel that prevents swapping
and/or writing to a disklabel portion of a physically first

 partition on the disk?


	This reminds me of a related suggestion / request. boot0cfg 
should be smarter, and require confirmation (unless forced) before 
overwrite a disklabel with an MBR (boot0cfg -b /dev/ad0s2g or 
similar). I believe overwriting a disklabel is much more likely to be 
pilot error, as in my case, than an deliberate choice.

	boot0cfg.8 says:

 On PCs, a boot manager typically occupies sector 0 of a disk, which is
 known as the Master Boot Record (MBR).  The MBR contains both code (to
 which control is passed by the PC BIOS) and data (an embedded table of
 defined slices).



		Regards,


		Chris Pepper
--
Chris Pepper:   http://www.reppep.com/~pepper/
Rockefeller University: http://www.rockefeller.edu/

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Julian Elischer


On Sun, 2 Feb 2003, Brad Knowles wrote:

 At 10:47 AM -0800 2003/02/01, Julian Elischer wrote:
 
   still no comments?
 
   this patch seems to be working, but a review from another developer
   would be good.. particularly re: the point mentionned..
 
[...]
 
   If I am wrong and it is normal to expect a reasonable response 
 within this period of time and within this particular period of time 
 on a Saturday morning, please let me know.

I guess I am spoiled by working on FreeBSD a few years ago when one
could expect at least 4 or 5 responses overnight. The developers now are
so over-worked that it is quite possible these days to put out a
proposal on and have no-one respond to it for two weeks.



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Brad Knowles
At 6:27 PM -0800 2003/02/01, Matthew Dillon wrote:


 Well, it is an active conversation/thread.  Either people care enough
 to stay involved or they don't.


	But don't people have to sleep sometime?  Shouldn't we allow for that?

	I mean, I can understand impatience, too.  I get impatient when 
I've done things and I'm waiting on other people to respond.


	I guess I'm just trying to find out what level of impatience 
would be appropriate in this kind of situation -- given the amount of 
time that had passed and the specific day and hours in question.

--
Brad Knowles, [EMAIL PROTECTED]

They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety.
-Benjamin Franklin, Historical Review of Pennsylvania.

GCS/IT d+(-) s:+(++): a C++(+++)$ UMBSHI$ P+++ L+ !E-(---) W+++(--) N+
!w--- O- M++ V PS++(+++) PE- Y+(++) PGP+++ t+(+++) 5++(+++) X++(+++) R+(+++)
tv+(+++) b+() DI+() D+(++) G+() e++ h--- r---(+++)* z(+++)

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message


Re: split out patch

2003-02-01 Thread Julian Elischer


On Sat, 1 Feb 2003, Julian Elischer wrote:

 
 
 On Sun, 2 Feb 2003, Brad Knowles wrote:
 
  At 10:47 AM -0800 2003/02/01, Julian Elischer wrote:
  
still no comments?
  
this patch seems to be working, but a review from another developer
would be good.. particularly re: the point mentionned..
  
 [...]
  
  If I am wrong and it is normal to expect a reasonable response 
  within this period of time and within this particular period of time 
  on a Saturday morning, please let me know.
 
 I guess I am spoiled by working on FreeBSD a few years ago when one
 could expect at least 4 or 5 responses overnight. The developers now are
 so over-worked that it is quite possible these days to put out a
 proposal on and have no-one respond to it for two weeks.

I might add that the patch was part of one that was already under
discussion so all the people who declared the other patch broken should
have already reviewed this code. (one would think that one wouldn't call
for or a backout if one hasn't even looked at the patch concerned)



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Giorgos Keramidas
On 2003-02-01 19:31, Garrett Wollman [EMAIL PROTECTED] wrote:
 On Sat, 01 Feb 2003 16:02:57 -0800, Bakul Shah [EMAIL PROTECTED] said:
  I can't see what actual error is avoided by this warning.

 My personal opinion, which is different from what style(9) recommends,
 is that parameter names should be omitted for all functions, EXCEPT
 those with ambiguous parameter types.

This is what I am almost inclined to agree with too.  But then,
headers are one of the sources of information for newbie programmers
too.  I have learned a lot of stuff by reading headers and not having
names in any prototype would arguably make it harder to use the
prototypes of functions in headers to learn things :-/


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



did the backout solve anything?

2003-02-01 Thread Julian Elischer


In an attempt to understand where and how the last KSE patch may have
been broken, I'd like to know if there is anyone who had 
a system magically cured by the backout. (Assuming you had 
the 'ticks' patch beforehand).

If so, can you tell me what your system was doing wrong beforehand,
and what kind of system you have?

Julian




To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Terry Lambert
Matthew Dillon wrote:
 Mark Murray wrote:
 :Then can we just get the proc.h prototypes into a (any) consistent
 :style?

Yes; no brainer, except where Garrett has indicated (e.g. a
function that takes a fromvp and tovp, or other similar arguments).


 Lets ask ourselves what the goal of the named prototypes is... the
 compiler doesn't need them, obviously, so one would presume that the
 goal is human readability.

Technically, the compiler doesn't need prototypes at all; they
are merely a band-aid for the compiler vendors, who did not want
to have to deal with changing object file format.  Because of
that, we also have symbol decoration for C++, and we have a C++
compiler that requires explicit declaration of some functions
which should be implicit.  If the object file had attribution,
and you wanted to make implied coercion, the linker could emit
glue, as necessary, and be done with it: no prototypes in scope.
If you wanted to disallow implied coercion, it could be a link-time
error.  Either way, the same complaining could take place, with
no need to abuse the compiler semantics.

Prototypes, in general, are things for compiler vendors, and the
goal of the named arguments in a prototype was, at least at one
point, to help out ANSI C compilers that wanted to requse the
function declaration parsing code, and would barf without some
token there to jam into a symbol table.  The shadowing warning
that is being complained about by Mark Murray is, as has been
pointed out, a compiler bug: according to the standards, the
symbols are supposed to go out of scope anyway.  In fact, it should
ignore tokens to the coma or closing parenthesis, and not be bitching
in the first place.


 So if we care about human readability we should simply name them after
 the argument names used in the procedures proper.  If we don't care
 about human readability we should omit the names entirely.

Yes, this makes sense.  The grip that Garrett brought up is an
artifact of the compiler being stupid.  In fact, the same problem
would occur for the function declaration, and all compilation units
for which there are header files containing prototypes should include
those headers themselves, in order to ensure the prototype was in
scope at the time the function was encountered, to insure against
trivial errors from the prototype not matching the function declaration.

Thus, if the prototype is:

int xxx(int _foo);

Then the function should be:

int xxx(int _foo)
{
}

...since what a

#define foo foobaz.bazu_foo

will do to a prototype declaration, it will surely do to the function
declaration as well, if it is in a header which is in scope at the
time the compiler encounters the actual function declaration.

 An underscore would be detrimental to human readability.  It makes the
 prototypes look rather nasty when I look at the fully patched proc.h,
 and also makes them different from the arguments as declared in the
 procedures proper.

It's just ugly, in general, and confusing, when combined with
structure pointer element references.  8-(.

[ ... ]
 And it goes on.  Quite a mess we have, actually.  We still have __P in
 many places.  The newest header file would arguably be acl.h in which
 the author used underscores.  I can't say I like the way it reads on the
 screen.  Older header files either still have __P, don't have __P and
 the arguments are named (typically without an underscore), or mix with
 some of the arguments named and some not (some wholely not).

So let Mark correct them into uniformity; that can be done
without protecting everything, which can be done as a seperate
protection or argument name removal pass.

-- Terry

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Mike Barcroft
Brad Knowles [EMAIL PROTECTED] writes:
 At 6:27 PM -0800 2003/02/01, Matthew Dillon wrote:
 
   Well, it is an active conversation/thread.  Either people care enough
   to stay involved or they don't.
 
   But don't people have to sleep sometime?  Shouldn't we allow for that?

Real hackers don't sleep. :)

Best regards,
Mike Barcroft

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Mylex support under 5.0-R

2003-02-01 Thread Andre Guibert de Bruet
Simon,

This is a known issue. Have a look at
http://www.freebsd.org/releases/5.0R/errata.html
under section 3 (Late-Breaking News).

Regards,

 Andre Guibert de Bruet | Enterprise Software Consultant 
 Silicon Landmark, LLC. | http://siliconlandmark.com/

On Fri, 31 Jan 2003, Simon wrote:

 Hi,

 Is it just me or is the Mylex driver broken under FreeBSD 5.0-Release?
 I couldn't dig up anything related in archives. I'm aware of bootup issues
 using Mylex cards, but I already have it installed on IDE and trying to
 work with a drive connected to a mylex controller locks up the system.

 Thank you,
 Simon



 To Unsubscribe: send mail to [EMAIL PROTECTED]
 with unsubscribe freebsd-current in the body of the message


To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: split out patch

2003-02-01 Thread Robert Watson

On Sat, 1 Feb 2003, Mike Barcroft wrote:

 Brad Knowles [EMAIL PROTECTED] writes:
  At 6:27 PM -0800 2003/02/01, Matthew Dillon wrote:
  
Well, it is an active conversation/thread.  Either people care enough
to stay involved or they don't.
  
  But don't people have to sleep sometime?  Shouldn't we allow for that?
 
 Real hackers don't sleep. :) 

That as may be, but even real hackers can't poll every mailing list every
five minutes :-).  Otherwise, real hackers would have no time for coding,
and that might present a problem.

Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
[EMAIL PROTECTED]  Network Associates Laboratories



To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Andrew Mishchenko
On Sat 01 Feb, Steve Kargl wrote:
 From: Steve Kargl [EMAIL PROTECTED]
 To: Julian Elischer [EMAIL PROTECTED]
 Cc: Mark Murray [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]
 Subject: Re: Style fixups for proc.h
 
 On Sat, Feb 01, 2003 at 03:04:32PM -0800, Julian Elischer wrote:
  I don't know about the protection with a '_'.
  
  It's not standard and usually the name matches that used in the actual
  function.
  
  It's certainly not part of style(9) that I've ever noticed
  and it's generally noy done that way.. is there a move to do this on all
  the other files?
  
 
 man 9 style
 
  In header files visible to userland applications, prototypes that are
  visible must use either ``protected'' names (ones beginning with an
  underscore) or no names with the types.  It is preferable to use pro-
  tected names.  E.g., use:
 
  voidfunction(int);
 
  or:
 
  voidfunction(int _fd);
 

Since having actual names in can be helpful if the names are relevant, but
having dozens of *_p floating all over the place is not more easily readable,
why not leave names out completely when they are not relevant and protect with
the underscore when they are?  This agrees with style(9).

Andrew

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h

2003-02-01 Thread Matthew Dillon
Well, there is something to be said for trying to avoid userland
namespace pollution, but it is still somewhat of a stretch since most
userland programs #include standard and system headers before
they #include their own, and the includes are typically done before
any code.

But I see no reason why the underscore methodology would need to be
used for kernelland prototypes.  C has its problems and we need to live
with them, but we shouldn't have to add bogus underscores to prototyped
arguments to work around those problems.  I'd prefer normally named 
arguments but if I were given only a choice between underscored named
arguments and unnamed arguments, I'd take unnamed arguments hands down.

-Matt

:Actually, the pattern is that the function prototypes exposed to userspace
:are prefixed with '_' to prevent interfering with the application
:namespace.  The ones exposed only in the kernel don't.  I should probably
:update the kernel ones as well.  This is mostly because of the profound
:evils associated with the C preprocessor, which can cause substitutions to
:occur in function prototypes (this is often used intentionally).
:
:For an example of this evil: there appears to be a convention in which we
:name structure elements with a prefix, such as m_blah, based on the
:structure name.  At one point I added m_flags to struct mac.  When I
:included mbuf.h, this became m_hdr.mh_flags, resulting in fairly obtuse
:compile errors.  Protecting user applications against hard to understand
:compile errors is an important part of providing useful include files to
:application writers, so avoiding exposing things to the application
:namespace where it can be avoided. 
:
:Robert N M Watson FreeBSD Core Team, TrustedBSD Projects

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



Re: Style fixups for proc.h by andrew@driftin.net

2003-02-01 Thread Andrew Mishchenko
On Sat 01 Feb, Matthew Dillon wrote:
 Well, there is something to be said for trying to avoid userland
 namespace pollution, but it is still somewhat of a stretch since most
 userland programs #include standard and system headers before
 they #include their own, and the includes are typically done before
 any code.
 
 But I see no reason why the underscore methodology would need to be
 used for kernelland prototypes.  C has its problems and we need to live
 with them, but we shouldn't have to add bogus underscores to prototyped
 arguments to work around those problems.  I'd prefer normally named 
 arguments but if I were given only a choice between underscored named
 arguments and unnamed arguments, I'd take unnamed arguments hands down.

As has been said earlier in this thread, having named arguments can often help
new coders learn and help readability (one knows what an argument is for from
looking at the header file as opposed to having to look through the C file),
which is why I suggested having underscored named arguments when they are
useful to have named, and no names when naming them is not useful.


Andrew

To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message



rand() is broken

2003-02-01 Thread Kris Kennaway
FreeBSD's rand() implementation has been broken for the past 23
months, since the following commit:


Revision 1.3 / (download) - annotate - [select for diffs], Tue Feb 27 14:42:19 2001 
UTC (23 months ago) by ache
Branch: MAIN
Changes since 1.2: +26 -0 lines
Diff to previous 1.2 (colored)

Use formula with better random distribution for rand()

Even better formula from random() could not be intetgrated because rand_r()
supposed to store its state in the single variable (but table needed for
random() algorithm integration).


The following simple test program exhibits the breakage:

#include stdlib.h
#include stdio.h

int main() {
int i;

for(i=1; i=1000; i++) {
srand(i);
printf(%d: %d\n, i, rand());
}
}

1: 16807
2: 33614
3: 50421
4: 67228
5: 84035
6: 100842
7: 117649
8: 134456
9: 151263
10: 168070
11: 184877
12: 201684
13: 218491
14: 235298
15: 252105
16: 268912
17: 285719
18: 302526
...

i.e. the first value returned from rand() is correlated with the seed
given to srand().  This is a big problem unless your seed is randomly
chosen over its entire integer range.  I noticed this because awk
exhibits the same problem, and the script seeds the generator with a
PID.  The script works fine under 4.x since the rand() implementation
does not have this feature.

Kris



msg51490/pgp0.pgp
Description: PGP signature