From owner-svn-src-projects@FreeBSD.ORG Sun Aug 8 16:17:29 2010 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9C509106566C; Sun, 8 Aug 2010 16:17:29 +0000 (UTC) (envelope-from asmrookie@gmail.com) Received: from mail-qw0-f54.google.com (mail-qw0-f54.google.com [209.85.216.54]) by mx1.freebsd.org (Postfix) with ESMTP id 337E28FC17; Sun, 8 Aug 2010 16:17:28 +0000 (UTC) Received: by qwg5 with SMTP id 5so5409291qwg.13 for ; Sun, 08 Aug 2010 09:17:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=A4QowHHRhZ/RQo4fJKugp1+SmrYtATCFiVD5Ijg6lOg=; b=w2FGF/AzW6i0NjVzovGiARLrvutD4QwRXNvHUUsPNCOWN9Fb5A+aW/do/dczkSH4kt ynooyx6sSy4bhxq+OR/fgpepViBosytvpR7z0LQXkwqxo9vW7FpVX4tTP75Oyxocz/xj ZKEl8hmqD4DPxw/n3PgWyfTC6B+Tz0d9NBk7g= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=CKPqKhQoreNd+dAe1VUta+X49I1pYuO9HnO5mJHYwaSyrdjQsEhng9ckOe/RFRP8ZA gnabdtyM7IkJ58RRVaAjn1MPPXNt60/Xa9vHGmp7ZFxCmvPg0dIfnehlJwIKaZ77GRbR G/maJ/ofM0WrRinHFgvudEuC8S74Vk6oTUnzQ= MIME-Version: 1.0 Received: by 10.224.115.79 with SMTP id h15mr7803861qaq.21.1281284248212; Sun, 08 Aug 2010 09:17:28 -0700 (PDT) Sender: asmrookie@gmail.com Received: by 10.229.251.6 with HTTP; Sun, 8 Aug 2010 09:17:28 -0700 (PDT) In-Reply-To: <20100808161342.GF22295@deviant.kiev.zoral.com.ua> References: <201008081544.o78FihwX008357@svn.freebsd.org> <20100808161342.GF22295@deviant.kiev.zoral.com.ua> Date: Sun, 8 Aug 2010 18:17:28 +0200 X-Google-Sender-Auth: UgFK72Lte0di5_ruZXQoEehljes Message-ID: From: Attilio Rao To: Kostik Belousov Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: svn-src-projects@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r211076 - projects/sv/sys/net X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 08 Aug 2010 16:17:29 -0000 Yes, I'm still considering more options for it, like usage of fail(9) as suggested by emaste. Thanks, Attilio 2010/8/8 Kostik Belousov : > On Sun, Aug 08, 2010 at 03:44:43PM +0000, Attilio Rao wrote: >> Author: attilio >> Date: Sun Aug =C2=A08 15:44:43 2010 >> New Revision: 211076 >> URL: http://svn.freebsd.org/changeset/base/211076 >> >> Log: >> =C2=A0 - Compile netdump.debug.force just when NETDUMP_DEBUG in included >> =C2=A0 - Fix the usage of nd_force_crash which is not necessarilly to ha= ve >> =C2=A0 =C2=A0 a static storage >> >> Modified: >> =C2=A0 projects/sv/sys/net/netdump_client.c >> >> Modified: projects/sv/sys/net/netdump_client.c >> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D >> --- projects/sv/sys/net/netdump_client.c =C2=A0 =C2=A0 =C2=A0Sun Aug =C2= =A08 15:35:17 2010 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r211075) >> +++ projects/sv/sys/net/netdump_client.c =C2=A0 =C2=A0 =C2=A0Sun Aug =C2= =A08 15:44:43 2010 =C2=A0 =C2=A0 =C2=A0 =C2=A0(r211076) >> @@ -146,7 +146,9 @@ static int =C2=A0 =C2=A0 =C2=A0 =C2=A0 netdump_send_= arp(void); >> =C2=A0static void =C2=A0 netdump_trigger(void *arg, int howto); >> =C2=A0static int =C2=A0 =C2=A0netdump_udp_output(struct mbuf *m); >> >> +#ifdef NETDUMP_DEBUG >> =C2=A0static int =C2=A0 =C2=A0sysctl_force_crash(SYSCTL_HANDLER_ARGS); >> +#endif >> =C2=A0static int =C2=A0 =C2=A0sysctl_ip(SYSCTL_HANDLER_ARGS); >> =C2=A0static int =C2=A0 =C2=A0sysctl_nic(SYSCTL_HANDLER_ARGS); >> >> @@ -166,7 +168,6 @@ static int nd_enable =3D 0; =C2=A0/* if we shou >> =C2=A0static struct in_addr nd_server =3D {INADDR_ANY}; /* server addres= s */ >> =C2=A0static struct in_addr nd_client =3D {INADDR_ANY}; /* client (our) = address */ >> =C2=A0struct ifnet *nd_nic =3D NULL; >> -static int nd_force_crash=3D0; >> =C2=A0static int nd_polls=3D10000; /* Times to poll the NIC (0.5ms each = poll) before >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 * assuming packetloss occurred: 5s by default */ >> =C2=A0static int nd_retries=3D10; /* Times to retransmit lost packets */ >> @@ -292,16 +293,18 @@ sysctl_nic(SYSCTL_HANDLER_ARGS) >> =C2=A0 =C2=A0 =C2=A0 return error; >> =C2=A0} >> >> +#ifdef NETDUMP_DEBUG >> =C2=A0static int >> =C2=A0sysctl_force_crash(SYSCTL_HANDLER_ARGS) >> =C2=A0{ >> - =C2=A0 =C2=A0 int error; >> + =C2=A0 =C2=A0 int error, force_crash; >> >> - =C2=A0 =C2=A0 error =3D sysctl_handle_int(oidp, &nd_force_crash, nd_fo= rce_crash, req); >> + =C2=A0 =C2=A0 force_crash =3D 0; >> + =C2=A0 =C2=A0 error =3D sysctl_handle_int(oidp, &force_crash, force_cr= ash, req); >> =C2=A0 =C2=A0 =C2=A0 if (error || req->newptr =3D=3D NULL) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 return error; >> >> - =C2=A0 =C2=A0 switch (nd_force_crash) { >> + =C2=A0 =C2=A0 switch (force_crash) { >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 case 1: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 printf("\nLivelocking system...\n"); >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 for (;;); >> @@ -329,6 +332,7 @@ sysctl_force_crash(SYSCTL_HANDLER_ARGS) >> =C2=A0 =C2=A0 =C2=A0 } >> =C2=A0 =C2=A0 =C2=A0 return 0; >> =C2=A0} >> +#endif >> >> =C2=A0SYSCTL_NODE(_net, OID_AUTO, dump, CTLFLAG_RW, 0, "netdump"); >> =C2=A0SYSCTL_PROC(_net_dump, OID_AUTO, server, CTLTYPE_STRING|CTLFLAG_RW= , &nd_server, >> @@ -337,8 +341,6 @@ SYSCTL_PROC(_net_dump, OID_AUTO, client, >> =C2=A0 =C2=A0 =C2=A0 0, sysctl_ip, "A", "dump client"); >> =C2=A0SYSCTL_PROC(_net_dump, OID_AUTO, nic, CTLTYPE_STRING|CTLFLAG_RW, &= nd_nic, >> =C2=A0 =C2=A0 =C2=A0 IFNAMSIZ, sysctl_nic, "A", "NIC to dump on"); >> -SYSCTL_PROC(_net_dump, OID_AUTO, crash, CTLTYPE_INT|CTLFLAG_RW, >> - =C2=A0 =C2=A0 0, sizeof(nd_force_crash), sysctl_force_crash, "I", "for= ce crashing"); >> =C2=A0SYSCTL_INT(_net_dump, OID_AUTO, polls, CTLTYPE_INT|CTLFLAG_RW, &nd= _polls, 0, >> =C2=A0 =C2=A0 =C2=A0 "times to poll NIC per retry"); >> =C2=A0SYSCTL_INT(_net_dump, OID_AUTO, retries, CTLTYPE_INT|CTLFLAG_RW, &= nd_retries, 0, >> @@ -346,6 +348,10 @@ SYSCTL_INT(_net_dump, OID_AUTO, retries, >> =C2=A0SYSCTL_INT(_net_dump, OID_AUTO, enable, CTLTYPE_INT|CTLFLAG_RW, &n= d_enable, >> =C2=A0 =C2=A0 =C2=A0 0, "enable network dump"); >> =C2=A0TUNABLE_INT("net.dump.enable", &nd_enable); >> +#ifdef NETDUMP_DEBUG >> +SYSCTL_PROC(_net_dump, OID_AUTO, crash, CTLTYPE_INT|CTLFLAG_RW, 0, size= of(int), >> + =C2=A0 =C2=A0sysctl_force_crash, "I", "force crashing"); >> +#endif > > We have debug.kdb.panic and friends. Might be, it makes sense to move > net.dump.crash there ? debug. looks as a more logical choice for most > sysctls too. > --=20 Peace can only be achieved by understanding - A. Einstein