From owner-p4-projects@FreeBSD.ORG Wed Jul 23 09:06:53 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DB4BD1065681; Wed, 23 Jul 2008 09:06:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DCD5106567E for ; Wed, 23 Jul 2008 09:06:52 +0000 (UTC) (envelope-from zec@tel.fer.hr) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9B8658FC22 for ; Wed, 23 Jul 2008 09:06:52 +0000 (UTC) (envelope-from zec@tel.fer.hr) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m6N96qfK058047 for ; Wed, 23 Jul 2008 09:06:52 GMT (envelope-from zec@tel.fer.hr) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.2/8.14.1/Submit) id m6N96qZP058045 for perforce@freebsd.org; Wed, 23 Jul 2008 09:06:52 GMT (envelope-from zec@tel.fer.hr) Date: Wed, 23 Jul 2008 09:06:52 GMT Message-Id: <200807230906.m6N96qZP058045@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to zec@tel.fer.hr using -f From: Marko Zec To: Perforce Change Reviews Cc: Subject: PERFORCE change 145687 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jul 2008 09:06:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=145687 Change 145687 by zec@zec_tpx32 on 2008/07/23 09:05:54 Unbreak GENERIC build. Affected files ... .. //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 edit .. //depot/projects/vimage-commit/src/sys/kern/tty.c#4 edit .. //depot/projects/vimage-commit/src/sys/net/if_ethersubr.c#4 edit .. //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#4 edit .. //depot/projects/vimage-commit/src/sys/netinet/tcp_var.h#3 edit .. //depot/projects/vimage-commit/src/sys/netinet6/icmp6.c#5 edit .. //depot/projects/vimage-commit/src/sys/netinet6/in6_proto.c#3 edit .. //depot/projects/vimage-commit/src/sys/sys/sysctl.h#2 edit .. //depot/projects/vimage-commit/src/sys/sys/vimage.h#5 edit .. //depot/projects/vimage-commit/src/sys/vm/vm_meter.c#4 edit Differences ... ==== //depot/projects/vimage-commit/src/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#4 (text+ko) ==== ==== //depot/projects/vimage-commit/src/sys/kern/tty.c#4 (text+ko) ==== @@ -2541,7 +2541,6 @@ void ttyinfo(struct tty *tp) { - INIT_VPROCG(TD_TO_VPROCG(curthread)); struct timeval utime, stime; struct proc *p, *pick; struct thread *td, *picktd; @@ -2556,7 +2555,7 @@ return; /* Print load average. */ - load = (V_averunnable.ldavg[0] * 100 + FSCALE / 2) >> FSHIFT; + load = (averunnable.ldavg[0] * 100 + FSCALE / 2) >> FSHIFT; ttyprintf(tp, "load: %d.%02d ", load / 100, load % 100); /* ==== //depot/projects/vimage-commit/src/sys/net/if_ethersubr.c#4 (text+ko) ==== ==== //depot/projects/vimage-commit/src/sys/netinet/ip_input.c#4 (text+ko) ==== @@ -93,6 +93,7 @@ forwarding, CTLFLAG_RW, ipforwarding, 0, "Enable IP forwarding between interfaces"); +static int ipsendredirects = 1; /* XXX */ SYSCTL_V_INT(V_NET, vnet_inet, _net_inet_ip, IPCTL_SENDREDIRECTS, redirect, CTLFLAG_RW, ipsendredirects, 0, "Enable sending IP redirects"); ==== //depot/projects/vimage-commit/src/sys/netinet/tcp_var.h#3 (text+ko) ==== @@ -510,6 +510,15 @@ extern int tcp_do_sack; /* SACK enabled/disabled */ extern int tcp_sc_rst_sock_fail; /* RST on sock alloc failure */ +extern int tcp_do_tso; +extern int tcp_do_autosndbuf; +extern int tcp_autosndbuf_max; +extern int tcp_autosndbuf_inc; +extern int tcp_autorcvbuf; +extern int tcp_do_autorcvbuf; +extern int tcp_autorcvbuf_inc; +extern int tcp_autorcvbuf_max; + int tcp_addoptions(struct tcpopt *, u_char *); struct tcpcb * tcp_close(struct tcpcb *); ==== //depot/projects/vimage-commit/src/sys/netinet6/icmp6.c#5 (text+ko) ==== @@ -718,7 +718,7 @@ p = (u_char *)(nicmp6 + 1); bzero(p, 4); bcopy(hostname, p + 4, maxhlen); /* meaningless TTL */ - mtx_unlock(&V_hostname_mtx); + mtx_unlock(&hostname_mtx); noff = sizeof(struct ip6_hdr); n->m_pkthdr.len = n->m_len = sizeof(struct ip6_hdr) + sizeof(struct icmp6_hdr) + 4 + maxhlen; ==== //depot/projects/vimage-commit/src/sys/netinet6/in6_proto.c#3 (text+ko) ==== @@ -542,16 +542,16 @@ SYSCTL_V_STRUCT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_RIP6STATS, rip6stats, CTLFLAG_RD, rip6stat, rip6stat, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_PREFER_TEMPADDR, - prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, ""); + prefer_tempaddr, CTLFLAG_RW, ip6_prefer_tempaddr, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_USE_DEFAULTZONE, - use_defaultzone, CTLFLAG_RW, ip6_use_defzone, 0,""); + use_defaultzone, CTLFLAG_RW, ip6_use_defzone, 0,""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MAXFRAGS, - maxfrags, CTLFLAG_RW, ip6_maxfrags, 0, ""); + maxfrags, CTLFLAG_RW, ip6_maxfrags, 0, ""); SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_MCAST_PMTU, - mcast_pmtu, CTLFLAG_RW, ip6_mcast_pmtu, 0, ""); + mcast_pmtu, CTLFLAG_RW, ip6_mcast_pmtu, 0, ""); #ifdef IPSTEALTH -SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_STEALTH, stealth, CTLFLAG_RW, -ip6stealth, 0, ""); +SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_ip6, IPV6CTL_STEALTH, + stealth, CTLFLAG_RW, ip6stealth, 0, ""); #endif /* net.inet6.icmp6 */ @@ -580,18 +580,3 @@ SYSCTL_V_INT(V_NET, vnet_inet6, _net_inet6_icmp6, ICMPV6CTL_ND6_DEBUG, nd6_debug, CTLFLAG_RW, nd6_debug, 0, ""); -struct domain inet6domain = { - .dom_family = AF_INET6, - .dom_name = "internet6", - .dom_protosw = (struct protosw *)inet6sw, - .dom_protoswNPROTOSW = (struct protosw *) - &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], - .dom_rtattach = in6_inithead, - .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3, - .dom_maxrtkey = sizeof(struct sockaddr_in6), - .dom_ifattach = in6_domifattach, - .dom_ifdetach = in6_domifdetach, - .dom_init = ip6_dom_init -}; - -DOMAIN_SET(inet6); ==== //depot/projects/vimage-commit/src/sys/sys/sysctl.h#2 (text+ko) ==== @@ -162,6 +162,8 @@ const char *oid_fmt; int oid_refcnt; const char *oid_descr; + short oid_v_subs; + short oid_v_mod; }; #define SYSCTL_IN(r, p, l) (r->newfunc)(r, p, l) @@ -175,6 +177,10 @@ int sysctl_handle_string(SYSCTL_HANDLER_ARGS); int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS); +int sysctl_handle_v_int(SYSCTL_HANDLER_ARGS); +int sysctl_handle_v_string(SYSCTL_HANDLER_ARGS); +int sysctl_handle_v_opaque(SYSCTL_HANDLER_ARGS); + /* * These functions are used to add/remove an oid from the mib. */ @@ -215,10 +221,24 @@ /* This constructs a "raw" MIB oid. */ #define SYSCTL_OID(parent, nbr, name, kind, a1, a2, handler, fmt, descr) \ static struct sysctl_oid sysctl__##parent##_##name = { \ - &sysctl_##parent##_children, { 0 }, \ - nbr, kind, a1, a2, #name, handler, fmt, 0, __DESCR(descr) }; \ + &sysctl_##parent##_children, { 0 }, nbr, kind, \ + a1, a2, #name, handler, fmt, 0, __DESCR(descr), 0, 0 }; \ DATA_SET(sysctl_set, sysctl__##parent##_##name) +#ifdef VIMAGE +#define SYSCTL_V_OID(subs, mod, parent, nbr, name, kind, a1, a2, \ + handler, fmt, descr) \ + static struct sysctl_oid sysctl__##parent##_##name = { \ + &sysctl_##parent##_children, { 0 }, nbr, kind, \ + (void *) offsetof(struct mod, _##a1), a2, #name, \ + handler, fmt, 0, __DESCR(descr), subs, V_MOD_##mod }; \ + DATA_SET(sysctl_set, sysctl__##parent##_##name) +#else +#define SYSCTL_V_OID(subs, mod, parent, nbr, name, kind, a1, a2, \ + handler, fmt, descr) \ + SYSCTL_OID(parent, nbr, name, kind, &a1, a2, handler, fmt, descr) +#endif + #define SYSCTL_ADD_OID(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, descr) \ sysctl_add_oid(ctx, parent, nbr, name, kind, a1, a2, handler, fmt, __DESCR(descr)) @@ -226,7 +246,7 @@ #define SYSCTL_NODE(parent, nbr, name, access, handler, descr) \ struct sysctl_oid_list SYSCTL_NODE_CHILDREN(parent, name); \ SYSCTL_OID(parent, nbr, name, CTLTYPE_NODE|(access), \ - (void*)&SYSCTL_NODE_CHILDREN(parent, name), 0, handler, \ + (void*)&SYSCTL_NODE_CHILDREN(parent, name), 0, handler, \ "N", descr) #define SYSCTL_ADD_NODE(ctx, parent, nbr, name, access, handler, descr) \ @@ -238,6 +258,16 @@ SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \ arg, len, sysctl_handle_string, "A", descr) +#ifdef VIMAGE +#define SYSCTL_V_STRING(subs, mod, parent, nbr, name, access, sym, len, descr) \ + SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_STRING|(access), \ + sym, len, sysctl_handle_v_string, "A", descr) +#else +#define SYSCTL_V_STRING(subs, mod, parent, nbr, name, access, sym, len, descr) \ + SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|(access), \ + &sym, len, sysctl_handle_string, "A", descr) +#endif + #define SYSCTL_ADD_STRING(ctx, parent, nbr, name, access, arg, len, descr) \ sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_STRING|(access), \ arg, len, sysctl_handle_string, "A", __DESCR(descr)) @@ -247,6 +277,16 @@ SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \ ptr, val, sysctl_handle_int, "I", descr) +#ifdef VIMAGE +#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \ + SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_INT|(access), \ + sym, val, sysctl_handle_v_int, "I", descr) +#else +#define SYSCTL_V_INT(subs, mod, parent, nbr, name, access, sym, val, descr) \ + SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|(access), \ + &sym, val, sysctl_handle_int, "I", descr) +#endif + #define SYSCTL_ADD_INT(ctx, parent, nbr, name, access, ptr, val, descr) \ sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_INT|(access), \ ptr, val, sysctl_handle_int, "I", __DESCR(descr)) @@ -309,6 +349,20 @@ ptr, sizeof(struct type), sysctl_handle_opaque, \ "S," #type, descr) +#ifdef VIMAGE +#define SYSCTL_V_STRUCT(subs, mod, parent, nbr, name, access, sym, \ + type, descr) \ + SYSCTL_V_OID(subs, mod, parent, nbr, name, CTLTYPE_OPAQUE|(access), \ + sym, sizeof(struct type), sysctl_handle_v_opaque, \ + "S," #type, descr) +#else +#define SYSCTL_V_STRUCT(subs, mod, parent, nbr, name, access, sym, \ + type, descr) \ + SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|(access), \ + &sym, sizeof(struct type), sysctl_handle_opaque, \ + "S," #type, descr) +#endif + #define SYSCTL_ADD_STRUCT(ctx, parent, nbr, name, access, ptr, type, descr) \ sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_OPAQUE|(access), \ ptr, sizeof(struct type), sysctl_handle_opaque, "S," #type, __DESCR(descr)) @@ -318,6 +372,11 @@ SYSCTL_OID(parent, nbr, name, (access), \ ptr, arg, handler, fmt, descr) +#define SYSCTL_V_PROC(subs, mod, parent, nbr, name, access, sym, arg, \ + handler, fmt, descr) \ + SYSCTL_V_OID(subs, mod, parent, nbr, name, (access), \ + sym, arg, handler, fmt, descr) + #define SYSCTL_ADD_PROC(ctx, parent, nbr, name, access, ptr, arg, handler, fmt, descr) \ sysctl_add_oid(ctx, parent, nbr, name, (access), \ ptr, arg, handler, fmt, __DESCR(descr)) @@ -329,6 +388,30 @@ #define FEATURE(name, desc) \ SYSCTL_INT(_kern_features, OID_AUTO, name, CTLFLAG_RD, 0, 1, desc) +/* + * Resolve void *arg1 in a proper virtualization container. + */ +#ifdef VIMAGE +#define SYSCTL_RESOLVE_V_ARG1() do { \ + char *cp; \ + switch (oidp->oid_v_subs) { \ + case V_NET: \ + cp = (char *) \ + TD_TO_VNET(curthread)->mod_data[oidp->oid_v_mod]; \ + break; \ + case V_PROCG: \ + cp = (char *) TD_TO_VPROCG(curthread); \ + break; \ + case V_CPU: \ + cp = (char *) TD_TO_VCPU(curthread); \ + break; \ + default: \ + panic("unsupported module id %d", oidp->oid_v_subs); \ + } \ + arg1 = cp + (size_t) arg1; \ +} while (0) +#endif + #endif /* _KERNEL */ /* ==== //depot/projects/vimage-commit/src/sys/sys/vimage.h#5 (text+ko) ==== @@ -407,18 +407,14 @@ u_int nprocs; - long _cp_time[CPUSTATES]; - char _hostname[MAXHOSTNAMELEN]; char _domainname[MAXHOSTNAMELEN]; +#if 0 + long _cp_time[CPUSTATES]; + int _morphing_symlinks; - struct loadavg _averunnable; /* from kern/kern_synch.c */ - int _sched_tdcnt; /* from kern/sched_4bsd.c */ - int _tdq_sysload[32]; /* XXX MAXCPUS from kern/sched_ule.c (SMP) */ - -#if 0 u_int proc_limit; /* max. number of processes */ struct msgbuf *msgbufp; ==== //depot/projects/vimage-commit/src/sys/vm/vm_meter.c#4 (text+ko) ==== @@ -79,20 +79,19 @@ static int sysctl_vm_loadavg(SYSCTL_HANDLER_ARGS) { - INIT_VPROCG(TD_TO_VPROCG(curthread)); #ifdef SCTL_MASK32 u_int32_t la[4]; if (req->flags & SCTL_MASK32) { - la[0] = V_averunnable.ldavg[0]; - la[1] = V_averunnable.ldavg[1]; - la[2] = V_averunnable.ldavg[2]; - la[3] = V_averunnable.fscale; + la[0] = averunnable.ldavg[0]; + la[1] = averunnable.ldavg[1]; + la[2] = averunnable.ldavg[2]; + la[3] = averunnable.fscale; return SYSCTL_OUT(req, la, sizeof(la)); } else #endif - return SYSCTL_OUT(req, &V_averunnable, sizeof(V_averunnable)); + return SYSCTL_OUT(req, &averunnable, sizeof(averunnable)); } SYSCTL_PROC(_vm, VM_LOADAVG, loadavg, CTLTYPE_STRUCT|CTLFLAG_RD, NULL, 0, sysctl_vm_loadavg, "S,loadavg", "Machine loadaverage history");