Re: 5.1->5.2

2004-01-16 Thread Guido van Rooij
On Thu, Jan 15, 2004 at 05:04:59PM -0500, Robert Watson wrote:
> 
> IPFILTER now relies on the PFIL_HOOKS kernel option; this is something
> that is somewhat poorly documented, and we should add it to the errate I
> suspect.  If you add "options PFIL_HOOKS" to your kernel config, it should
> work.  Moving to PFIL_HOOKS for all the "funky IP input/ouput" feature is
> a goal for 5.3 (in fact, I believe Sam has it almost entirely done in one
> of his development branches), and should both simplify the input/output
> paths, and also simplify locking for the IP stack.  So the change is for a
> good cause :-).
> 

That reminds me: is there a way to influence the order in which
the various packages are hooked up? E.g. I can imagine
a situation where you want IPfilter NATting and ipfw filtering.
In such a scenario you want to be able to specify _exactly_
that ipfilter comes before ipfw when packets come in, and vice
versa when packets go out.

-Guido
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


few question about vfs layer

2004-01-16 Thread Alex Lyashkov
Hi List

I explore vfs lookup code. and have few questions about it.
what a reasone leave rootvnode as global varables, but not store it in 
filedesc structrure and adjust it in chroot or jail syscall ?

-- 
With best regards,
Alex
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Slow Console Input

2004-01-16 Thread Tillman Hodgson
On Thu, Jan 15, 2004 at 10:56:36PM -0600, Michael Cacek wrote:
> I recently installed freebsd 5.2 on a local sunblade 100 system.


You probably want to try on the sparc64@ list.

FWIW, the last time I checked syscons improvements were still on the
TO-DO list for the sparc64 port. It's never really affected me though --
my Ultra 5 is a server, so I either serial console to it or
ssh/Kerberized telnet to it.

-T


-- 
> Life is once again okay, if non-standard.
- Takis Skagos, on a LOSURS mailing list
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: 5.1->5.2

2004-01-16 Thread Matt Freitag
Now I can play with ULE, Thanks for your quick response. I should've 
checked release notes before posting my question, my fault.

-mpf

Robert Watson wrote:

On Thu, 15 Jan 2004, Matt Freitag wrote:

 

Building 5.2-RELEASE from 5.1-RELEASE-p10 w/ipf+ipfw+ipfw6+dummynet, 5.1
Compiled fine with this setup.  I need ipfilter as it's doing my source
routing for ipv6 (multiple transits) since ip6fw doesn't support fwd. (I
just use ip6fw for filtering, and ipf for forwarding to the correct
interface according to source)  Am I just being stupid here somehow? 
   

IPFILTER now relies on the PFIL_HOOKS kernel option; this is something
that is somewhat poorly documented, and we should add it to the errate I
suspect.  If you add "options PFIL_HOOKS" to your kernel config, it should
work.  Moving to PFIL_HOOKS for all the "funky IP input/ouput" feature is
a goal for 5.3 (in fact, I believe Sam has it almost entirely done in one
of his development branches), and should both simplify the input/output
paths, and also simplify locking for the IP stack.  So the change is for a
good cause :-).
Robert N M Watson FreeBSD Core Team, TrustedBSD Projects
[EMAIL PROTECTED]  Senior Research Scientist, McAfee Research
 

 

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: PCI interrupt allocation question..

2004-01-16 Thread Bernd Walter
On Tue, Jan 13, 2004 at 04:14:10PM -0800, Julian Elischer wrote:
> 
> 
> On Wed, 14 Jan 2004, Stijn Hoop wrote:
> 
> > On Tue, Jan 13, 2004 at 03:26:00PM -0800, Julian Elischer wrote:
> > > The kernel includes teh ichsmb driver to try access the SMBus 
> > > for temperature reading reasons (yes I know I can do it other ways..)
> > > 
> > > Any thoughts that move me towards getting th eichsmb driver working on
> > > this machine are welcome.
> > 
> > Make sure that the mainboard really does support SMBus -- it turns out that
> > this is optional. The ICH docs talk about a bit that should be enabled in the
> > PCI config when SMB is present. I ran into this once, it should be documented
> > in the archives (of -current off the top of my head). OTOH, I didn't even
> > succeed in getting an ichsmb device probed so this might be something totally
> > unrelated.

SMBus is absolutely not optional because it's required for SPD eeproms.

> > FWIW, I had to try other ways to get the temperature (xmbmon & related). I
> > don't have the box anymore or I'd show you the exact config...
> 
> xmbmon uses the SMBus to read the temperatures but it does it from
> userland using direct read and write operations
> and when there are timing glitches caused by the process not getting
> scheduled quite quick enough you get garbage results..
> teh theory is that the kernel driver wouldn't be susceptible to this
> but it looks like unless I resort to polling I will not be able to use
> it because it relies on the interrupts and they are not being delivered.

ichsmb(4) does a different addressing on smbus as other smbus drivers.
I'm about to validate all SMBus drivers to harmonise this point.
Also software regulary forgets about different smb.h include path on 5.x

> ASUS motherboards actually turn off the SMBus. (why?)

A very good question - I'm in tight contact with Asus germany to get
that answered, but even they doesn't seem to get a satisfying answer
from taiwan.
It seems that they don't want customers to tamper with SMBus :(

> So you need to turn it back on before you can read the temperatures..

Use ACPI...
Well - it's evil after all, because I sell add on products for SMBus
for which ACPI is not an option.

-- 
B.Walter   BWCThttp://www.bwct.de
[EMAIL PROTECTED]  [EMAIL PROTECTED]

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Mergemaster+RCS

2004-01-16 Thread S . Yamagishi
$B1)?6$j$NNI$/$J$C$?$+$D$F$NIt2<$KD$r5-$7$?%O%k$N2s8\O?Iw$K(B
$B$O!"(B"$B#1#0!s$N9XF~A}(B"$B!"(B"$BM}2r$r5a$a$k(B"$B$O;~4V2T$.$G!"2?$+$r1#$7$F$$$k>Z5r$H(B
$B2rl$ON?$2$k$H;W$C$F$$$k!"A10U$KK~$A$?(B
$B$O$$$k$,7hDj8"$NA4$/$J$$7/$_$?$$$J?M$HMh$F$O!"9T$+$J$$J}$,NI$$$K7h$^$C$F$$$k!#(B
(B[EMAIL PROTECTED]"6[D%$KBQ$($k5$35$b$J$/!"[EMAIL PROTECTED]"32$HB;$,A}$([EMAIL 
(BPROTECTED](B
$B$N(BUnderstatement$B$J$i(B10 [EMAIL 
(BPROTECTED]&$K$O(B100%$BA}$N7W2h$,$J$1$l$P$J$k$^$$!#(B
(B
(B[EMAIL PROTECTED];W$&[EMAIL PROTECTED]&$,!"@[EMAIL 
(BPROTECTED]($k!#5nG/$b:_8K$rA}$d$7$?$N$K!"99$K(B
$B#1#0!s$H$OE~Dl?.$8$i$l$J$$OC!#(BRenapur$B$rGd$C$?J}$,3f9%$,IU$/$N$G$O$J$$$+!#(B
(B
$BBg$$$KIe$k$,$h$m$7$$!#:#$^$G$r9M$($l$P!"EvA3$J7k2L$K$J$C$?$HG<[EMAIL 
(BPROTECTED]&!#(B
(B
$B$d$^$.$7(B
(B___
(B[EMAIL PROTECTED] mailing list
(Bhttp://lists.freebsd.org/mailman/listinfo/freebsd-hackers
(BTo unsubscribe, send any mail to "[EMAIL PROTECTED]"

Re: 5.1->5.2

2004-01-16 Thread Chris Shenton
"Bruce A. Mah" <[EMAIL PROTECTED]> writes:

> It's in the release notes and in UPDATING...I have the feeling that if
> people won't read it in either of those two places, they won't read it
> in the errata either.  :-p

How 'bout putting it some place folks are likely to stumble upon it,
like as a comment in the GENERIC kernel file? 
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Bind hack for ipv6 autoconf

2004-01-16 Thread Markus Kovero
I was just wondering, inspired by Saku Ytti's idea of making hack to bind
which would allow
proper PTR and  records for rtadvd or similar autoconfigured hosts, as
you can know hosts that are given
are quite random, and far as I know there is no smart logic with them. So,
somekinda hack for bind is needed.
eg. bind could be modified to do PTR and  with different system than
zonefiles has, though zonefiles shouldn't be
ignored but if query regarding autoconfigured subnet comes in it should be
handled on its own system.
For example:
Foo asks reverse for address xyz, bind notices that it has subnet xy defined
as autoconfig hosts and calculates reverse for it like, xyz IN PTR
z-xy.auto.foo.tld.
And then, another day, Bar asks  record for z-xy.auto.foo.tld and bind
notices that its under auto.foo.tld which was defined for autoconfigured
hosts and subnet was xy, answer xyz is given.
And if foo asks  for foo.tld bind operates normally and gives possible
answer from zonefile.
If ISC guys are following these lists I would like to hear their comments.
Anybody interested in developing this kind of modification?

Ideas? Comments? Anybody?

Greets Markus Kovero

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: Future of RAIDFrame and Vinum (was: Future of RAIDFrame)

2004-01-16 Thread Marcin Dalecki
Mark Linimon wrote:

But, in the real world of software engineering, He Who Breaketh It,
Must Fixeth It.
Your mileage may vary.
Yes it vaires. In the real world He Who Reaketh It, will hire
someone who known what he is doing to fix the problem...
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


[CHECKER] bugs in FreeBSD

2004-01-16 Thread Paul Twohey
Hi,

I'm with the Stanford Metacompilation research group. We have a suite of
checkers that find bugs at compile time and we've had quite a bit of
success checking the Linux kernel code for errors. Since our checkers can
emit false alarms we filter the reports before we give them to the kernel
developers. While some false alarms slip past us to the developers, our
limited knowledge of the kernel allows us to recognize most of them.

We are currently trying to extend our checker to automatically find 
functions which allocate resources and to make sure those resources are 
properly disposed of. 

Enclosed is a list of potential bugs in FreeBSD where a value is returned 
from a function (like malloc) that should be owned by the caller and the 
caller does not properly dispose of the value with the appropriate 
disposal routine (like free).

Confirmation of these reports would be appreciated.

Thanks

Paul Twohey



-
[BUG]  they do error checking at the end, so lose config.
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ata/ata-raid.c:1222:ar_highpoint_write_conf:ERROR:LEAK:1222:1222:
 pointer=config from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=6]

microtime(×tamp);
rdp->magic_0 = timestamp.tv_sec + 2;
rdp->magic_1 = timestamp.tv_sec;
   
for (disk = 0; disk < rdp->total_disks; disk++) {

Error --->
if (!(config = (struct highpoint_raid_conf *)
  malloc(sizeof(struct highpoint_raid_conf),
 M_AR, M_NOWAIT | M_ZERO))) {
printf("ar%d: Highpoint write conf failed\n", rdp->lun);
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ppbus/vpo.c:187:vpo_cam_rescan:ERROR:LEAK:187:192:
 pointer=ccb from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=4]


static void
vpo_cam_rescan(struct vpo_data *vpo)
{
struct cam_path *path;
Start --->
union ccb *ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO);

if (xpt_create_path(&path, xpt_periph, cam_sim_path(vpo->sim), 0, 0)
!= CAM_REQ_CMP) {
/* A failure is benign as the user can do a manual rescan */
Error --->
return;
}

xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/);
-
[BUG]  though we should demote things that are not locals.
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ips/ips.c:148:ips_add_waiting_command:ERROR:LEAK:148:154:
 pointer=waiter from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=5]

ips_command_t *command;
ips_wait_list_t *waiter;
unsigned long memflags = 0;
if(IPS_NOWAIT_FLAG & flags)
memflags = M_NOWAIT;
Start --->
waiter = malloc(sizeof(ips_wait_list_t), M_DEVBUF, memflags);
if(!waiter)
return ENOMEM;
mask = splbio();
if(sc->state & IPS_OFFLINE){
splx(mask);
Error --->
return EIO;
}
command = SLIST_FIRST(&sc->free_cmd_list);
if(command && !(sc->state & IPS_TIMEOUT)){
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/sio/sio.c:497:sioprobe:ERROR:LEAK:497:504:
 pointer=port from RO=bus_alloc_resource(-1) [s=65,pop=65,pr=1.00] [rank=med] leaked! 
[z=1.0] [success=3]

u_int   flags = device_get_flags(dev);
int rid;
struct resource *port;

rid = xrid;
Start --->
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
  0, ~0, IO_COMSIZE, RF_ACTIVE);
if (!port)
return (ENXIO);

com = malloc(sizeof(*com), M_DEVBUF, M_NOWAIT | M_ZERO);
if (com == NULL)
Error --->
return (ENOMEM);
device_set_softc(dev, com);
com->bst = rman_get_bustag(port);
com->bsh = rman_get_bushandle(port);
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/mly/mly.c:2023:mly_cam_rescan_btl:ERROR:LEAK:2023:2031:
 pointer=ccb from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=4]

{
union ccb   *ccb;

debug_called(1);

Start --->
if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO)) == NULL) {
mly_printf(sc, "rescan failed (can't allocate CCB)\n");
return;
}

if (xpt_create_path(&sc->mly_cam_path, xpt_periph, 
cam_sim_path(sc->mly_cam_sim[bus]), target, 0) != CAM_REQ_CMP) 
{
mly_printf(sc, "rescan failed (can't create path)\n");
Error --->
return;
}
xpt_setup_ccb(&ccb->ccb_h, sc->mly_cam_path, 5/*priority (low)*/);
ccb->ccb_h.func_code = XPT_SC

[CHECKER] bugs in FreeBSD

2004-01-16 Thread Paul Twohey
Hi,

I'm with the Stanford Metacompilation research group. We have a suite of
checkers that find bugs at compile time and we've had quite a bit of
success checking the Linux kernel code for errors. Since our checkers can
emit false alarms we filter the reports before we give them to the kernel
developers. While some false alarms slip past us to the developers, our
limited knowledge of the kernel allows us to recognize most of them.

We are currently trying to extend our checker to automatically find 
functions which allocate resources and to make sure those resources are 
properly disposed of. 

Enclosed is a list of potential bugs in FreeBSD where a value is returned 
from a function (like malloc) that should be owned by the caller and the 
caller does not properly dispose of the value with the appropriate 
disposal routine (like free).

Confirmation of these reports would be appreciated.

Thanks

Paul Twohey



-
[BUG]  they do error checking at the end, so lose config.
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ata/ata-raid.c:1222:ar_highpoint_write_conf:ERROR:LEAK:1222:1222:
 pointer=config from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=6]

microtime(×tamp);
rdp->magic_0 = timestamp.tv_sec + 2;
rdp->magic_1 = timestamp.tv_sec;
   
for (disk = 0; disk < rdp->total_disks; disk++) {

Error --->
if (!(config = (struct highpoint_raid_conf *)
  malloc(sizeof(struct highpoint_raid_conf),
 M_AR, M_NOWAIT | M_ZERO))) {
printf("ar%d: Highpoint write conf failed\n", rdp->lun);
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ppbus/vpo.c:187:vpo_cam_rescan:ERROR:LEAK:187:192:
 pointer=ccb from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=4]


static void
vpo_cam_rescan(struct vpo_data *vpo)
{
struct cam_path *path;
Start --->
union ccb *ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO);

if (xpt_create_path(&path, xpt_periph, cam_sim_path(vpo->sim), 0, 0)
!= CAM_REQ_CMP) {
/* A failure is benign as the user can do a manual rescan */
Error --->
return;
}

xpt_setup_ccb(&ccb->ccb_h, path, 5/*priority (low)*/);
-
[BUG]  though we should demote things that are not locals.
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/ips/ips.c:148:ips_add_waiting_command:ERROR:LEAK:148:154:
 pointer=waiter from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=5]

ips_command_t *command;
ips_wait_list_t *waiter;
unsigned long memflags = 0;
if(IPS_NOWAIT_FLAG & flags)
memflags = M_NOWAIT;
Start --->
waiter = malloc(sizeof(ips_wait_list_t), M_DEVBUF, memflags);
if(!waiter)
return ENOMEM;
mask = splbio();
if(sc->state & IPS_OFFLINE){
splx(mask);
Error --->
return EIO;
}
command = SLIST_FIRST(&sc->free_cmd_list);
if(command && !(sc->state & IPS_TIMEOUT)){
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/sio/sio.c:497:sioprobe:ERROR:LEAK:497:504:
 pointer=port from RO=bus_alloc_resource(-1) [s=65,pop=65,pr=1.00] [rank=med] leaked! 
[z=1.0] [success=3]

u_int   flags = device_get_flags(dev);
int rid;
struct resource *port;

rid = xrid;
Start --->
port = bus_alloc_resource(dev, SYS_RES_IOPORT, &rid,
  0, ~0, IO_COMSIZE, RF_ACTIVE);
if (!port)
return (ENXIO);

com = malloc(sizeof(*com), M_DEVBUF, M_NOWAIT | M_ZERO);
if (com == NULL)
Error --->
return (ENOMEM);
device_set_softc(dev, com);
com->bst = rman_get_bustag(port);
com->bsh = rman_get_bushandle(port);
-
[BUG]
/u2/engler/mc/freebsd/sys/i386/compile/GENERIC/../../../dev/mly/mly.c:2023:mly_cam_rescan_btl:ERROR:LEAK:2023:2031:
 pointer=ccb from RO=malloc(-1) [s=550,pop=551,pr=1.00] [rank=med] leaked! [z=1.0] 
[success=4]

{
union ccb   *ccb;

debug_called(1);

Start --->
if ((ccb = malloc(sizeof(union ccb), M_TEMP, M_WAITOK | M_ZERO)) == NULL) {
mly_printf(sc, "rescan failed (can't allocate CCB)\n");
return;
}

if (xpt_create_path(&sc->mly_cam_path, xpt_periph, 
cam_sim_path(sc->mly_cam_sim[bus]), target, 0) != CAM_REQ_CMP) 
{
mly_printf(sc, "rescan failed (can't create path)\n");
Error --->
return;
}
xpt_setup_ccb(&ccb->ccb_h, sc->mly_cam_path, 5/*priority (low)*/);
ccb->ccb_h.func_code = XPT_SC

__restrict__ vs __restrict ?

2004-01-16 Thread Tim Kientzle
I've been enabling a LOT of gcc warnings recently
in the process of linting some code I'm writing.
In the process, I stumbled across the following
curiosity:
> cat test.c
#include 
> gcc -std=c99 -ansi test.c
In file included from test.c:1:
/usr/include/stdio.h:220: conflicting types for `restrict'
/usr/include/stdio.h:220: previous declaration of `restrict'
/usr/include/stdio.h:221: conflicting types for `restrict'
/usr/include/stdio.h:221: previous declaration of `restrict'
/usr/include/stdio.h:222: redefinition of `restrict'
/usr/include/stdio.h:222: `restrict' previously declared here
/usr/include/stdio.h:223: conflicting types for `restrict'
[  many similar lines omitted  ]
If I change all "__restrict" in stdio.h to "__restrict__",
these warnings disappear.
Question:  Does anyone know the difference between
__restrict and __restrict__?  Should we be using
the latter in our system headers?
Tim

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: __restrict__ vs __restrict ?

2004-01-16 Thread Ruslan Ermilov
On Fri, Jan 16, 2004 at 05:23:01PM -0800, Tim Kientzle wrote:
> I've been enabling a LOT of gcc warnings recently
> in the process of linting some code I'm writing.
> In the process, I stumbled across the following
> curiosity:
> 
> > cat test.c
> #include 
> > gcc -std=c99 -ansi test.c
> In file included from test.c:1:
> /usr/include/stdio.h:220: conflicting types for `restrict'
> /usr/include/stdio.h:220: previous declaration of `restrict'
> /usr/include/stdio.h:221: conflicting types for `restrict'
> /usr/include/stdio.h:221: previous declaration of `restrict'
> /usr/include/stdio.h:222: redefinition of `restrict'
> /usr/include/stdio.h:222: `restrict' previously declared here
> /usr/include/stdio.h:223: conflicting types for `restrict'
> [  many similar lines omitted  ]
> 
> If I change all "__restrict" in stdio.h to "__restrict__",
> these warnings disappear.
> 
> Question:  Does anyone know the difference between
> __restrict and __restrict__?
> 
__restrict__ is the gcc(1)-only feature.  From gcc.info:

: `-std='
:  Determine the language standard.  This option is currently only
:  supported when compiling C or C++.  A value for this option must be
:  provided; possible values are
: [...]
:  Even when this option is not specified, you can still use some of
:  the features of newer standards in so far as they do not conflict
:  with previous C standards.  For example, you may use
:  `__restrict__' even when `-std=c99' is not specified.
: [...]
: As with gcc, g++ understands the C99 feature of restricted pointers,
: specified with the `__restrict__', or `__restrict' type qualifier.
: Because you cannot compile C++ by specifying the `-std=c99' language
: flag, `restrict' is not a keyword in C++.

__restrict is defined in , it's the FreeBSD feature.

> Should we be using the latter in our system headers?
> 
No, we should be using the __restrict as coded.  But I wonder why
we can't just use "restrict", please see below.

Note that __restrict is a no-op these days because we don't
compile our C code by default with -std=c99.

I'm not sure why we can't replace

#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901
#define __restrict
#else
#define __restrict  restrict
#endif
#endif

with

#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901
#define restrict
#endif

and just use "restrict" everywhere.  Also similarly I'm not
aware of the status of the CSTD feature for share/mk that
was backed out.  (8 makefiles in src/ still have CSTD.)


Cheers,
-- 
Ruslan Ermilov
FreeBSD committer
[EMAIL PROTECTED]


pgp0.pgp
Description: PGP signature


ip_input - chksum - why is it done so early in ip_input?

2004-01-16 Thread Sten Daniel Sørsdal

Apologies for the cross-post, i wasnt sure if this was hackers or net material.

I've often wondered why ip checksumming is done on every incoming 
packet and not only on the packets that need to be delivered locally.
It looks like a very expensive way of doing it, especially on high
PPS. Basically all hosts do checksumming so why not just pass the bad
packet on, making the forward process alot cheaper (cpu wise)?

I ran some tests (unable to disclose results) by removing it completely
and it seems to make a noticable impact on the performance.
Especially on for example gaming services where there is a high PPS versus
actual data.

Besides that i'd like to add that FreeBSD has the fastest forwarding engine
i've seen on any free OS. It's in my opinion a very suitable OS for 
routing/forwarding.


_// Sten





___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: __restrict__ vs __restrict ?

2004-01-16 Thread Tim Kientzle
Ruslan Ermilov wrote:
On Fri, Jan 16, 2004 at 05:23:01PM -0800, Tim Kientzle wrote:

Question:  Does anyone know the difference between
__restrict and __restrict__?
__restrict__ is the gcc(1)-only feature.
__restrict is defined in , it's the FreeBSD feature.
A-ha!  That's the part I had missed.  After a few experiments
with gcc -dM -E, I've convinced myself that this is just another
GCC bug.  Basically, -std=c99 -ansi seems to be a very bad compination,
as -std=c99 defines __STDC_VERSION__ to be 199901L and -ansi then
turns off compiler support for c99 features.  Ugh.
Should we be using the latter in our system headers?
No, we should be using the __restrict as coded.  But I wonder why
we can't just use "restrict"...
Because that would really mess up any user program that used
'restrict' as a variable or function name.  I think the
current approach is the best.
Thanks for the clarification.  I'll go crawl back under
my nice, comfortable rock now.
Tim

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [CHECKER] bugs in FreeBSD

2004-01-16 Thread Xin LI
Hello,

The tool is amazing :)

I am very interested in how does it work, is there any paper published on
this topic?
Thanks in advance!

Xin LI,
Beijing University of Technology

- Original Message - 
From: "Paul Twohey" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, January 17, 2004 8:01 AM
Subject: [CHECKER] bugs in FreeBSD


> Hi,
>
> I'm with the Stanford Metacompilation research group. We have a suite of
> checkers that find bugs at compile time and we've had quite a bit of
> success checking the Linux kernel code for errors. Since our checkers can
> emit false alarms we filter the reports before we give them to the kernel
> developers. While some false alarms slip past us to the developers, our
> limited knowledge of the kernel allows us to recognize most of them.
>
> We are currently trying to extend our checker to automatically find
> functions which allocate resources and to make sure those resources are
> properly disposed of.
>
> Enclosed is a list of potential bugs in FreeBSD where a value is returned
> from a function (like malloc) that should be owned by the caller and the
> caller does not properly dispose of the value with the appropriate
> disposal routine (like free).

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: [CHECKER] bugs in FreeBSD

2004-01-16 Thread Kip Macy
Dawson is the man.

http://www.stanford.edu/~engler/


If I have not seen as far as others, it is because I have been
standing in the footprints of giants.  -- from Usenet


On Fri, 16 Jan 2004, Xin LI wrote:

> Hello,
> 
> The tool is amazing :)
> 
> I am very interested in how does it work, is there any paper published on
> this topic?
> Thanks in advance!
> 
> Xin LI,
> Beijing University of Technology
> 
> - Original Message - 
> From: "Paul Twohey" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Saturday, January 17, 2004 8:01 AM
> Subject: [CHECKER] bugs in FreeBSD
> 
> 
> > Hi,
> >
> > I'm with the Stanford Metacompilation research group. We have a suite of
> > checkers that find bugs at compile time and we've had quite a bit of
> > success checking the Linux kernel code for errors. Since our checkers can
> > emit false alarms we filter the reports before we give them to the kernel
> > developers. While some false alarms slip past us to the developers, our
> > limited knowledge of the kernel allows us to recognize most of them.
> >
> > We are currently trying to extend our checker to automatically find
> > functions which allocate resources and to make sure those resources are
> > properly disposed of.
> >
> > Enclosed is a list of potential bugs in FreeBSD where a value is returned
> > from a function (like malloc) that should be owned by the caller and the
> > caller does not properly dispose of the value with the appropriate
> > disposal routine (like free).
> 
> ___
> [EMAIL PROTECTED] mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "[EMAIL PROTECTED]"
> 

___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"