Re: svn commit: r259642 - head/sys/netinet
On Fri, Dec 20, 2013 at 07:41:03AM +, Adrian Chadd wrote: A> Author: adrian A> Date: Fri Dec 20 07:41:03 2013 A> New Revision: 259642 A> URL: http://svnweb.freebsd.org/changeset/base/259642 A> A> Log: A> Disable the now unpredicably bogus check for whether we have A> eneough queue space before queuing a bunch of IP fragments. A> A> As the comment in the committed change says, in the post-if_transmit(), A> post-SMP, post-preemption world, there's just too much overlapping A> concurrent code paths and different approaches to driver transmit A> queue management to have this code even remotely be effective. A> A> The only specific place it could be useful is if ALTQ is enabled A> but again it doesn't at all promise that all the fragments will be A> transmitted anyway. A> A> The main reason for committing this change is to disable a parallel A> place where the drops counter is incremented. This is a side effect A> of an upcoming change to ixgbe/cxgbe to handle the queue drops A> counter slightly better. I didn't get to review of actual patch, but IMO it would be better just to remove the code, not ifdef 0 it. The code ifdefed has zero probability to be enabled in its current form. If we ever fix it, code would look very different. No reason to do followup commit, that was just me muttering. -- Totus tuus, Glebius. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259644 - head/sys/dev/ixgbe
Author: glebius Date: Fri Dec 20 10:57:47 2013 New Revision: 259644 URL: http://svnweb.freebsd.org/changeset/base/259644 Log: ixgbe(4) takes packet counters from hardware in ixgbe_update_stats_counters(), so we don't need to do a per packet increment, which trashes cache line. Submitted by: oleg Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c == --- head/sys/dev/ixgbe/ixgbe.c Fri Dec 20 10:49:57 2013(r259643) +++ head/sys/dev/ixgbe/ixgbe.c Fri Dec 20 10:57:47 2013(r259644) @@ -3696,7 +3696,6 @@ ixgbe_txeof(struct tx_ring *txr) } ++txr->packets; ++processed; - ++ifp->if_opackets; txr->watchdog_time = ticks; /* Try the next packet */ @@ -4553,7 +4552,6 @@ ixgbe_rxeof(struct ix_queue *que) mp->m_next = nbuf->buf; } else { /* Sending this frame */ sendmp->m_pkthdr.rcvif = ifp; - ifp->if_ipackets++; rxr->rx_packets++; /* capture data for AIM */ rxr->bytes += sendmp->m_pkthdr.len; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259645 - head/usr.bin/netstat
Author: melifaro Date: Fri Dec 20 12:08:36 2013 New Revision: 259645 URL: http://svnweb.freebsd.org/changeset/base/259645 Log: Further split kvm(3) and sysctl interfaces for route table printing. MFC after:4 weeks Sponsored by: Yandex LLC Modified: head/usr.bin/netstat/route.c Modified: head/usr.bin/netstat/route.c == --- head/usr.bin/netstat/route.cFri Dec 20 10:57:47 2013 (r259644) +++ head/usr.bin/netstat/route.cFri Dec 20 12:08:36 2013 (r259645) @@ -139,7 +139,6 @@ int do_rtent = 0; struct rtentry rtentry; struct radix_node rnode; struct radix_mask rmask; -struct radix_node_head **rt_tables; intNewTree = 1; @@ -149,16 +148,17 @@ static struct sockaddr *kgetsa(struct so static void size_cols(int ef, struct radix_node *rn); static void size_cols_tree(struct radix_node *rn); static void size_cols_rtentry(struct rtentry *rt); -static void p_tree(struct radix_node *); -static void p_rtnode(void); -static void ntreestuff(int fibnum, int af); -static void np_rtentry(struct rt_msghdr *); +static void p_rtnode_kvm(void); +static void p_rtable_sysctl(int, int); +static void p_rtable_kvm(int, int ); +static void p_rtree_kvm(struct radix_node *); +static void p_rtentry_sysctl(struct rt_msghdr *); static void p_sockaddr(struct sockaddr *, struct sockaddr *, int, int); static const char *fmt_sockaddr(struct sockaddr *sa, struct sockaddr *mask, int flags); static void p_flags(int, const char *); static const char *fmt_flags(int f); -static void p_rtentry(struct rtentry *); +static void p_rtentry_kvm(struct rtentry *); static void domask(char *, in_addr_t, u_long); /* @@ -167,10 +167,8 @@ static void domask(char *, in_addr_t, u_ void routepr(int fibnum, int af) { - struct radix_node_head **rnhp, *rnh, head; - u_long rtree; size_t intsize; - int fam, numfibs; + int numfibs; intsize = sizeof(int); if (fibnum == -1 && @@ -194,60 +192,12 @@ routepr(int fibnum, int af) printf("\n"); if (Aflag == 0 && live != 0 && NewTree) - ntreestuff(fibnum, af); - else { - kresolve_list(rl); - if ((rtree = rl[N_RTREE].n_value) == 0) { - printf("rt_tables: symbol not in namelist\n"); - return; - } - - rt_tables = calloc(numfibs * (AF_MAX + 1), - sizeof(struct radix_node_head *)); - if (rt_tables == NULL) - err(EX_OSERR, "memory allocation failed"); - - if (kread((u_long)(rtree), (char *)(rt_tables), (numfibs * - (AF_MAX+1) * sizeof(struct radix_node_head *))) != 0) - return; - for (fam = 0; fam <= AF_MAX; fam++) { - int tmpfib; - - switch (fam) { - case AF_INET6: - case AF_INET: - tmpfib = fibnum; - break; - default: - tmpfib = 0; - } - rnhp = (struct radix_node_head **)*rt_tables; - /* Calculate the in-kernel address. */ - rnhp += tmpfib * (AF_MAX+1) + fam; - /* Read the in kernel rhn pointer. */ - if (kget(rnhp, rnh) != 0) - continue; - if (rnh == NULL) - continue; - /* Read the rnh data. */ - if (kget(rnh, head) != 0) - continue; - if (fam == AF_UNSPEC) { - if (Aflag && af == 0) { - printf("Netmasks:\n"); - p_tree(head.rnh_treetop); - } - } else if (af == AF_UNSPEC || af == fam) { - size_cols(fam, head.rnh_treetop); - pr_family(fam); - do_rtent = 1; - pr_rthdr(fam); - p_tree(head.rnh_treetop); - } - } - } + p_rtable_sysctl(fibnum, af); + else + p_rtable_kvm(fibnum, af); } + /* * Print address family header before a section of the routing table. */ @@ -451,8 +401,75 @@ kgetsa(struct sockaddr *dst) return (&pt_u.u_sa); } +/* + * Print kernel routing tables for given fib + * using debugging kvm(3) interface. + */ +static void +p_rtable_kvm(int fibnum, int af) +{ + struct radix_node_head **rnhp, *rnh, head; + struct radix_node_head **rt_tables; + u_long rtree; +
Re: svn commit: r259644 - head/sys/dev/ixgbe
On Dec 20, 2013, at 11:57 AM, Gleb Smirnoff wrote: I think you need something like [bsd5:~/head] tuexen% svn diff Index: sys/dev/ixgbe/ixgbe.c === --- sys/dev/ixgbe/ixgbe.c (revision 259645) +++ sys/dev/ixgbe/ixgbe.c (working copy) @@ -3592,8 +3592,10 @@ static void ixgbe_txeof(struct tx_ring *txr) { +#ifdef DEV_NETMAP struct adapter *adapter = txr->adapter; struct ifnet*ifp = adapter->ifp; +#endif u32 work, processed = 0; u16 limit = txr->process_limit; struct ixgbe_tx_buf *buf; to get it compiling if DEV_NETMAP is not defined. Best regards Michael > Author: glebius > Date: Fri Dec 20 10:57:47 2013 > New Revision: 259644 > URL: http://svnweb.freebsd.org/changeset/base/259644 > > Log: > ixgbe(4) takes packet counters from hardware in > ixgbe_update_stats_counters(), > so we don't need to do a per packet increment, which trashes cache line. > > Submitted by:oleg > > Modified: > head/sys/dev/ixgbe/ixgbe.c > > Modified: head/sys/dev/ixgbe/ixgbe.c > == > --- head/sys/dev/ixgbe/ixgbe.cFri Dec 20 10:49:57 2013 > (r259643) > +++ head/sys/dev/ixgbe/ixgbe.cFri Dec 20 10:57:47 2013 > (r259644) > @@ -3696,7 +3696,6 @@ ixgbe_txeof(struct tx_ring *txr) > } > ++txr->packets; > ++processed; > - ++ifp->if_opackets; > txr->watchdog_time = ticks; > > /* Try the next packet */ > @@ -4553,7 +4552,6 @@ ixgbe_rxeof(struct ix_queue *que) > mp->m_next = nbuf->buf; > } else { /* Sending this frame */ > sendmp->m_pkthdr.rcvif = ifp; > - ifp->if_ipackets++; > rxr->rx_packets++; > /* capture data for AIM */ > rxr->bytes += sendmp->m_pkthdr.len; > ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259644 - head/sys/dev/ixgbe
On Fri, Dec 20, 2013 at 02:12:42PM +0100, Michael Tuexen wrote: M> On Dec 20, 2013, at 11:57 AM, Gleb Smirnoff wrote: M> M> I think you need something like M> M> [bsd5:~/head] tuexen% svn diff M> Index: sys/dev/ixgbe/ixgbe.c M> === M> --- sys/dev/ixgbe/ixgbe.c(revision 259645) M> +++ sys/dev/ixgbe/ixgbe.c(working copy) M> @@ -3592,8 +3592,10 @@ M> static void M> ixgbe_txeof(struct tx_ring *txr) M> { M> +#ifdef DEV_NETMAP M> struct adapter *adapter = txr->adapter; M> struct ifnet*ifp = adapter->ifp; M> +#endif M> u32 work, processed = 0; M> u16 limit = txr->process_limit; M> struct ixgbe_tx_buf *buf; M> M> to get it compiling if DEV_NETMAP is not defined. Thanks, Michael. And sorry for broken build. -- Totus tuus, Glebius. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259646 - head/sys/dev/ixgbe
Author: glebius Date: Fri Dec 20 13:18:50 2013 New Revision: 259646 URL: http://svnweb.freebsd.org/changeset/base/259646 Log: Fix build broken in r259644. Submitted by: tuexen Pointy hat to:glebius Modified: head/sys/dev/ixgbe/ixgbe.c Modified: head/sys/dev/ixgbe/ixgbe.c == --- head/sys/dev/ixgbe/ixgbe.c Fri Dec 20 12:08:36 2013(r259645) +++ head/sys/dev/ixgbe/ixgbe.c Fri Dec 20 13:18:50 2013(r259646) @@ -3592,8 +3592,10 @@ ixgbe_atr(struct tx_ring *txr, struct mb static void ixgbe_txeof(struct tx_ring *txr) { +#ifdef DEV_NETMAP struct adapter *adapter = txr->adapter; struct ifnet*ifp = adapter->ifp; +#endif u32 work, processed = 0; u16 limit = txr->process_limit; struct ixgbe_tx_buf *buf; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259647 - head/sys/dev/hwpmc
Author: attilio Date: Fri Dec 20 14:03:56 2013 New Revision: 259647 URL: http://svnweb.freebsd.org/changeset/base/259647 Log: o Remove assertions on ipa_version as sometimes the version detection using cpuid can be quirky (this is the case of VMWare without the vPMC support) but fail to probe hwpmc. o Apply the fix for XEON family of processors as established by 315338-020 document (bug AJ85). Sponsored by: EMC / Isilon storage division Reviewed by: fabient Modified: head/sys/dev/hwpmc/hwpmc_core.c head/sys/dev/hwpmc/hwpmc_core.h head/sys/dev/hwpmc/hwpmc_intel.c Modified: head/sys/dev/hwpmc/hwpmc_core.c == --- head/sys/dev/hwpmc/hwpmc_core.c Fri Dec 20 13:18:50 2013 (r259646) +++ head/sys/dev/hwpmc/hwpmc_core.c Fri Dec 20 14:03:56 2013 (r259647) @@ -2627,35 +2627,33 @@ core2_intr(int cpu, struct trapframe *tf } int -pmc_core_initialize(struct pmc_mdep *md, int maxcpu) +pmc_core_initialize(struct pmc_mdep *md, int maxcpu, int version_override) { int cpuid[CORE_CPUID_REQUEST_SIZE]; int ipa_version, flags, nflags; do_cpuid(CORE_CPUID_REQUEST, cpuid); - ipa_version = cpuid[CORE_CPUID_EAX] & 0xFF; + ipa_version = (version_override > 0) ? version_override : + cpuid[CORE_CPUID_EAX] & 0xFF; + core_cputype = md->pmd_cputype; PMCDBG(MDP,INI,1,"core-init cputype=%d ncpu=%d ipa-version=%d", - md->pmd_cputype, maxcpu, ipa_version); + core_cputype, maxcpu, ipa_version); - if (ipa_version < 1 || ipa_version > 3) { + if (ipa_version < 1 || ipa_version > 3 || + (core_cputype != PMC_CPU_INTEL_CORE && ipa_version == 1)) { /* Unknown PMC architecture. */ printf("hwpc_core: unknown PMC architecture: %d\n", ipa_version); return (EPROGMISMATCH); } - core_cputype = md->pmd_cputype; - core_pmcmask = 0; /* * Initialize programmable counters. */ - KASSERT(ipa_version >= 1, - ("[core,%d] ipa_version %d too small", __LINE__, ipa_version)); - core_iap_npmc = (cpuid[CORE_CPUID_EAX] >> 8) & 0xFF; core_iap_width = (cpuid[CORE_CPUID_EAX] >> 16) & 0xFF; @@ -2670,10 +2668,6 @@ pmc_core_initialize(struct pmc_mdep *md, * Initialize fixed function counters, if present. */ if (core_cputype != PMC_CPU_INTEL_CORE) { - KASSERT(ipa_version >= 2, - ("[core,%d] ipa_version %d too small", __LINE__, - ipa_version)); - core_iaf_ri = core_iap_npmc; core_iaf_npmc = cpuid[CORE_CPUID_EDX] & 0x1F; core_iaf_width = (cpuid[CORE_CPUID_EDX] >> 5) & 0xFF; Modified: head/sys/dev/hwpmc/hwpmc_core.h == --- head/sys/dev/hwpmc/hwpmc_core.h Fri Dec 20 13:18:50 2013 (r259646) +++ head/sys/dev/hwpmc/hwpmc_core.h Fri Dec 20 14:03:56 2013 (r259647) @@ -175,7 +175,8 @@ struct pmc_md_iap_pmc { * Prototypes. */ -intpmc_core_initialize(struct pmc_mdep *_md, int _maxcpu); +intpmc_core_initialize(struct pmc_mdep *_md, int _maxcpu, + int _version_override); void pmc_core_finalize(struct pmc_mdep *_md); void pmc_core_mark_started(int _cpu, int _pmc); Modified: head/sys/dev/hwpmc/hwpmc_intel.c == --- head/sys/dev/hwpmc/hwpmc_intel.cFri Dec 20 13:18:50 2013 (r259646) +++ head/sys/dev/hwpmc/hwpmc_intel.cFri Dec 20 14:03:56 2013 (r259647) @@ -78,7 +78,7 @@ pmc_intel_initialize(void) { struct pmc_mdep *pmc_mdep; enum pmc_cputype cputype; - int error, model, nclasses, ncpus; + int error, model, nclasses, ncpus, stepping, verov; KASSERT(cpu_vendor_id == CPU_VENDOR_INTEL, ("[intel,%d] Initializing non-intel processor", __LINE__)); @@ -88,7 +88,9 @@ pmc_intel_initialize(void) cputype = -1; nclasses = 2; error = 0; + verov = 0; model = ((cpu_id & 0xF) >> 12) | ((cpu_id & 0xF0) >> 4); + stepping = cpu_id & 0xF; switch (cpu_id & 0xF00) { #ifdefined(__i386__) @@ -119,8 +121,14 @@ pmc_intel_initialize(void) cputype = PMC_CPU_INTEL_CORE; break; case 0xF: - cputype = PMC_CPU_INTEL_CORE2; - nclasses = 3; + /* Per Intel document 315338-020. */ + if (stepping == 0x7) { + cputype = PMC_CPU_INTEL_CORE; + verov = 1; + } else { + cputype = PMC_CPU_INTEL_CORE2; +
Re: svn commit: r259619 - in head/contrib/gcc: . cp doc
On 19.12.13 19:27, Pedro F. Giffuni wrote: > Author: pfg > Date: Thu Dec 19 18:27:32 2013 > New Revision: 259619 > URL: http://svnweb.freebsd.org/changeset/base/259619 > > Log: > gcc: backport upstream fix for issue with C++'s placement new > > Fixes GCC libstdc++/29286 > > Obtained from: gcc 4.3 (rev. 125603, 125653; GPLv2) > MFC after: 2 weeks Pedro, is this commit complete? If so, please revert. I get a compiler on powerpc64 which immediately segfaults. Thanks, Andreas ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259649 - in head/contrib/gcc: . config cp doc
Author: pfg Date: Fri Dec 20 14:56:52 2013 New Revision: 259649 URL: http://svnweb.freebsd.org/changeset/base/259649 Log: gcc: more diff reductions against Apple GCC. Mostly cosmetical changes to aid further merges. Obtained from:gcc 4.3 (rev. 120611, 124839; GPLv2) MFC after:1 week Modified: head/contrib/gcc/ChangeLog.gcc43 head/contrib/gcc/config/darwin.h head/contrib/gcc/cp/ChangeLog.gcc43 head/contrib/gcc/cp/Make-lang.in head/contrib/gcc/cp/mangle.c head/contrib/gcc/cp/rtti.c head/contrib/gcc/doc/tm.texi head/contrib/gcc/dwarf2out.c head/contrib/gcc/sched-vis.c head/contrib/gcc/target-def.h head/contrib/gcc/target.h head/contrib/gcc/tree-dump.c Modified: head/contrib/gcc/ChangeLog.gcc43 == --- head/contrib/gcc/ChangeLog.gcc43Fri Dec 20 14:33:48 2013 (r259648) +++ head/contrib/gcc/ChangeLog.gcc43Fri Dec 20 14:56:52 2013 (r259649) @@ -150,6 +150,14 @@ regs_invalidated_by_call, rather than just checking the membership of REGNO (REG). +2007-05-18 Geoffrey Keating (r124839) + + * dwarf2out.c (print_die): Use '%ld' not '%lu' to print a 'long'. + (output_die): Use 'unsigned long' with %x. + * sched-vis.c (print_value): Use 'unsigned HOST_WIDE_INT' and + HOST_WIDE_INT_PRINT_HEX to print HOST_WIDE_INT. + * tree-dump.c (dump_pointer): Use 'unsigned long' for %lx. + 2007-05-16 Eric Christopher (r124763) * config/rs6000/rs6000.c (rs6000_emit_prologue): Move altivec register @@ -470,6 +478,14 @@ * c-common.c (vector_types_convertible_p): Treat opaque types as always convertible if they have the same size, but not otherwise. +2007-01-08 Geoffrey Keating (r120611) + + * target.h (struct gcc_target): New field library_rtti_comdat. + * target-def.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): New. + (TARGET_CXX): Add TARGET_CXX_LIBRARY_RTTI_COMDAT. + * doc/tm.texi (C++ ABI): Document TARGET_CXX_LIBRARY_RTTI_COMDAT. + * config/darwin.h (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. + 2007-01-08 Mark Shinwell (r120572) * c.opt: Add -flax-vector-conversions. Modified: head/contrib/gcc/config/darwin.h == --- head/contrib/gcc/config/darwin.hFri Dec 20 14:33:48 2013 (r259648) +++ head/contrib/gcc/config/darwin.hFri Dec 20 14:56:52 2013 (r259649) @@ -467,6 +467,10 @@ extern GTY(()) int darwin_ms_struct; with names, so it's safe to make the class data not comdat. */ #define TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT hook_bool_void_false +/* For efficiency, on Darwin the RTTI information that is always + emitted in the standard C++ library should not be COMDAT. */ +#define TARGET_CXX_LIBRARY_RTTI_COMDAT hook_bool_void_false + /* We make exception information linkonce. */ #undef TARGET_USES_WEAK_UNWIND_INFO #define TARGET_USES_WEAK_UNWIND_INFO 1 Modified: head/contrib/gcc/cp/ChangeLog.gcc43 == --- head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 14:33:48 2013 (r259648) +++ head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 14:56:52 2013 (r259649) @@ -35,6 +35,10 @@ * typeck.c (build_binary_op): Include types in error. +2007-05-18 Geoffrey Keating (r124839) + + * mangle.c (write_real_cst): Use 'unsigned long' for %lx. + 2007-05-05 Geoffrey Keating (r124467) PR 31775 Modified: head/contrib/gcc/cp/Make-lang.in == --- head/contrib/gcc/cp/Make-lang.inFri Dec 20 14:33:48 2013 (r259648) +++ head/contrib/gcc/cp/Make-lang.inFri Dec 20 14:56:52 2013 (r259649) @@ -265,7 +265,7 @@ cp/tree.o: cp/tree.c $(CXX_TREE_H) $(TM_ $(TARGET_H) debug.h cp/ptree.o: cp/ptree.c $(CXX_TREE_H) $(TM_H) cp/rtti.o: cp/rtti.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) toplev.h convert.h \ - gt-cp-rtti.h + $(TARGET_H) gt-cp-rtti.h cp/except.o: cp/except.c $(CXX_TREE_H) $(TM_H) $(FLAGS_H) $(RTL_H) except.h \ toplev.h cp/cfns.h $(EXPR_H) libfuncs.h $(TREE_INLINE_H) $(TARGET_H) cp/expr.o: cp/expr.c $(CXX_TREE_H) $(TM_H) $(RTL_H) $(FLAGS_H) $(EXPR_H) \ Modified: head/contrib/gcc/cp/mangle.c == --- head/contrib/gcc/cp/mangle.cFri Dec 20 14:33:48 2013 (r259648) +++ head/contrib/gcc/cp/mangle.cFri Dec 20 14:56:52 2013 (r259649) @@ -1340,7 +1340,7 @@ write_real_cst (const tree value) for (; i != limit; i += dir) { - sprintf (buffer, "%08lx", target_real[i]); + sprintf (buffer, "%08lx", (unsigned long) target_real[i]); write_chars (buffer, 8); } } Modified: head/contrib/gcc/cp/rtti.c ==
svn commit: r259650 - head/sys/dev/vt
Author: ray Date: Fri Dec 20 15:37:57 2013 New Revision: 259650 URL: http://svnweb.freebsd.org/changeset/base/259650 Log: Set mouse level per window, instead of global. Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/vt/vt.h head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt.h == --- head/sys/dev/vt/vt.hFri Dec 20 14:56:52 2013(r259649) +++ head/sys/dev/vt/vt.hFri Dec 20 15:37:57 2013(r259650) @@ -244,6 +244,7 @@ struct vt_window { int vw_kbdmode;/* (?) Keyboard mode. */ char*vw_kbdsq; /* Escape sequence queue*/ unsigned int vw_flags; /* (d) Per-window flags. */ + int vw_mouse_level;/* Mouse op mode. */ #defineVWF_BUSY0x1 /* Busy reconfiguring device. */ #defineVWF_OPENED 0x2 /* TTY in use. */ #defineVWF_SCROLL 0x4 /* Keys influence scrollback. */ Modified: head/sys/dev/vt/vt_core.c == --- head/sys/dev/vt/vt_core.c Fri Dec 20 14:56:52 2013(r259649) +++ head/sys/dev/vt/vt_core.c Fri Dec 20 15:37:57 2013(r259650) @@ -633,6 +633,9 @@ vtterm_param(struct terminal *tm, int cm case TP_SHOWCURSOR: vtbuf_cursor_visibility(&vw->vw_buf, arg); break; + case TP_MOUSE: + vw->vw_mouse_level = arg; + break; } } @@ -1206,7 +1209,7 @@ vt_mouse_event(int type, int x, int y, i * under mouse pointer when nothing changed. */ - if (mlevel > 0) + if (vw->vw_mouse_level > 0) vt_mouse_terminput(vd, type, x, y, event, cnt); switch (type) { ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259651 - head/sys/dev/vt
Author: ray Date: Fri Dec 20 15:45:22 2013 New Revision: 259651 URL: http://svnweb.freebsd.org/changeset/base/259651 Log: Enable AltGr key by default. Asked by: many Sponsored by: The FreeBSD Foundation Modified: head/sys/dev/vt/vt_core.c Modified: head/sys/dev/vt/vt_core.c == --- head/sys/dev/vt/vt_core.c Fri Dec 20 15:37:57 2013(r259650) +++ head/sys/dev/vt/vt_core.c Fri Dec 20 15:45:22 2013(r259651) @@ -113,7 +113,7 @@ const struct terminal_class vt_termclass int sc_txtmouse_no_retrace_wait; static SYSCTL_NODE(_kern, OID_AUTO, vt, CTLFLAG_RD, 0, "Newcons parameters"); -VT_SYSCTL_INT(enable_altgr, 0, "Enable AltGr key (Do not assume R.Alt as Alt)"); +VT_SYSCTL_INT(enable_altgr, 1, "Enable AltGr key (Do not assume R.Alt as Alt)"); VT_SYSCTL_INT(debug, 0, "Newcons debug level"); VT_SYSCTL_INT(deadtimer, 15, "Time to wait busy process in VT_PROCESS mode"); VT_SYSCTL_INT(suspendswitch, 1, "Switch to VT0 before suspend"); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259655 - head/contrib/gcc/cp
Author: pfg Date: Fri Dec 20 16:01:02 2013 New Revision: 259655 URL: http://svnweb.freebsd.org/changeset/base/259655 Log: gcc: merge upstream fix and new feature. Fix for PR c++/29928 Add support for Rvalue references as described here: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2118.html Obtained from:gcc 4.3 (rev. 124724, 125211; GPLv2) MFC after:2 weeks Modified: head/contrib/gcc/cp/ChangeLog.gcc43 head/contrib/gcc/cp/call.c head/contrib/gcc/cp/cp-tree.h head/contrib/gcc/cp/decl.c head/contrib/gcc/cp/error.c head/contrib/gcc/cp/except.c head/contrib/gcc/cp/mangle.c head/contrib/gcc/cp/parser.c head/contrib/gcc/cp/pt.c head/contrib/gcc/cp/rtti.c head/contrib/gcc/cp/tree.c head/contrib/gcc/cp/typeck.c Modified: head/contrib/gcc/cp/ChangeLog.gcc43 == --- head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 15:58:33 2013 (r259654) +++ head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 16:01:02 2013 (r259655) @@ -35,10 +35,75 @@ * typeck.c (build_binary_op): Include types in error. +2007-05-30 Russell Yanofsky (r125211) +Douglas Gregor +Pedro Lamarao +Howard Hinnant + + PR c++/7412 + PR c++/29939 + * typeck.c (comptypes): Don't consider rvalue and lvalue + reference types to be equivalent. + (check_return_expr): Move from certain lvalues when returning + them. + * decl.c (grokdeclarator): Implement reference collapsing. + (copy_fn_p): Don't consider constructors taking rvalue references + to be copy constructors. + (move_fn_p): New. +* call.c (conversion): New "rvaluedness_matches_p" member. + (convert_class_to_reference): Require reference type as first + parameter instead of base type. + (reference_binding): Add logic to handle rvalue references. + (implicit_conversion): Update inaccurate comment. + (convert_like_real): Disable creation of temporaries that are + impossible to initialize for types with move constructors. + (build_over_call): Elide move constructors when possible. + (maybe_handle_implicit_object): Set "rvaluedness_matches_p". + (maybe_handle_ref_bind): Return conversion instead of type node. + (compare_ics): Add logic to use "rvaluedness_matches_p" values to + determine preferred conversion sequences. + * cp-tree.h (TYPE_REF_IS_RVALUE): New. + (LOOKUP_PREFER_RVALUE): New. + (DECL_MOVE_CONSTRUCTOR_P): New. + (struct cp_declarator): Add "reference" member for reference + types, with new "rvalue_ref" flag. + (cp_build_reference_type): Declare. + (move_fn_p): Declare. + * error.c (dump_type_prefix): Format rvalue reference types + correctly in error messages. + * except.c (build_throw): Move from certain lvalues when + throwing. + * mangle.c (write_type): Mangle rvalue references differently + than regular references. + * parser.c (make_reference_declarator): Add boolean parameter for + rvalue references. + (cp_parser_make_indirect_declarator): New. + (cp_parser_new_declarator_opt): Call + cp_parser_make_indirect_declarator. + (cp_parser_conversion_declarator_opt): Ditto. + (cp_parser_declarator): Ditto. + (cp_parser_ptr_operator): Parse "&&" tokens into rvalue reference + declarators. + * pt.c (tsubst): Implement reference collapsing. + (maybe_adjust_types_for_deduction): Implement special template + parameter deduction rule for rvalue references. + (type_unification_real): Update calls to + maybe_adjust_types_for_deduction. + (try_one_overload): Ditto. + (unify_pack_expansion): Ditto. + * tree.c (lvalue_p_1): Handle rvalue reference types. + (cp_build_reference_type): New. + 2007-05-18 Geoffrey Keating (r124839) * mangle.c (write_real_cst): Use 'unsigned long' for %lx. +2007-05-14 Paolo Carlini (r124724) + + PR c++/29928 + * rtti.c (get_tinfo_decl_dynamic, get_typeid): Try to complete the + type only if is a class type (5.2.8/4). + 2007-05-05 Geoffrey Keating (r124467) PR 31775 Modified: head/contrib/gcc/cp/call.c == --- head/contrib/gcc/cp/call.c Fri Dec 20 15:58:33 2013(r259654) +++ head/contrib/gcc/cp/call.c Fri Dec 20 16:01:02 2013(r259655) @@ -95,6 +95,10 @@ struct conversion { /* If KIND is ck_ptr or ck_pmem, true to indicate that a conversion from a pointer-to-derived to pointer-to-base is being performed. */ BOOL_BITFIELD base_p : 1; + /* If KIND is ck_ref_bind, true when either an lvalue reference is + being bound to an lvalue expression or an rvalue reference is + being bound to an rvalue expression
svn commit: r259657 - head/sys/powerpc/powermac
Author: jhibbits Date: Fri Dec 20 16:37:03 2013 New Revision: 259657 URL: http://svnweb.freebsd.org/changeset/base/259657 Log: Add suspend/resume handlers for ATI backlight ppc driver. With this, also shut shut off the display (DPMS-style) and disable the clocking when the backlight level is set to 0. This is taken from the radeonkms driver (radeon_legacy_encoders.c) which doesn't yet support PowerPC, and won't for a while, as it's missing full AGP support. Modified: head/sys/powerpc/powermac/atibl.c Modified: head/sys/powerpc/powermac/atibl.c == --- head/sys/powerpc/powermac/atibl.c Fri Dec 20 16:15:25 2013 (r259656) +++ head/sys/powerpc/powermac/atibl.c Fri Dec 20 16:37:03 2013 (r259657) @@ -52,10 +52,15 @@ __FBSDID("$FreeBSD$"); #define RADEON_LVDS_BL_MOD_EN(1 << 16) #define RADEON_LVDS_DIGON(1 << 18) #define RADEON_LVDS_BLON (1 << 19) +#define RADEON_LVDS_PLL_CNTL 0x02d4 +#define RADEON_LVDS_PLL_EN (1 << 16) +#define RADEON_LVDS_PLL_RESET(1 << 17) +#define RADEON_PIXCLKS_CNTL 0x002d +#define RADEON_PIXCLK_LVDS_ALWAYS_ONb (1 << 14) struct atibl_softc { - device_t dev; struct resource *sc_memr; + int sc_level; }; static void atibl_identify(driver_t *driver, device_t parent); @@ -63,13 +68,17 @@ static int atibl_probe(device_t dev); static int atibl_attach(device_t dev); static int atibl_setlevel(struct atibl_softc *sc, int newlevel); static int atibl_getlevel(struct atibl_softc *sc); +static int atibl_resume(device_t dev); +static int atibl_suspend(device_t dev); static int atibl_sysctl(SYSCTL_HANDLER_ARGS); static device_method_t atibl_methods[] = { /* Device interface */ - DEVMETHOD(device_identify, atibl_identify), - DEVMETHOD(device_probe, atibl_probe), - DEVMETHOD(device_attach, atibl_attach), + DEVMETHOD(device_identify, atibl_identify), + DEVMETHOD(device_probe, atibl_probe), + DEVMETHOD(device_attach,atibl_attach), + DEVMETHOD(device_suspend, atibl_suspend), + DEVMETHOD(device_resume,atibl_resume), {0, 0}, }; @@ -136,8 +145,8 @@ atibl_attach(device_t dev) tree = device_get_sysctl_tree(dev); SYSCTL_ADD_PROC(ctx, SYSCTL_CHILDREN(tree), OID_AUTO, - "level", CTLTYPE_INT | CTLFLAG_RW, sc, 0, - atibl_sysctl, "I", "Backlight level (0-100)"); + "level", CTLTYPE_INT | CTLFLAG_RW, sc, 0, + atibl_sysctl, "I", "Backlight level (0-100)"); return (0); } @@ -146,6 +155,8 @@ static int atibl_setlevel(struct atibl_softc *sc, int newlevel) { uint32_t lvds_gen_cntl; + uint32_t lvds_pll_cntl; + uint32_t pixclks_cntl; if (newlevel > 100) newlevel = 100; @@ -153,13 +164,38 @@ atibl_setlevel(struct atibl_softc *sc, i if (newlevel < 0) newlevel = 0; - newlevel = (newlevel * 5) / 2 + 5; lvds_gen_cntl = bus_read_4(sc->sc_memr, RADEON_LVDS_GEN_CNTL); - lvds_gen_cntl |= RADEON_LVDS_BL_MOD_EN; - lvds_gen_cntl &= ~RADEON_LVDS_BL_MOD_LEVEL_MASK; - lvds_gen_cntl |= (newlevel << RADEON_LVDS_BL_MOD_LEVEL_SHIFT) & - RADEON_LVDS_BL_MOD_LEVEL_MASK; - bus_write_4(sc->sc_memr, RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); + + if (newlevel > 0) { + newlevel = (newlevel * 5) / 2 + 5; + lvds_pll_cntl = bus_read_4(sc->sc_memr, RADEON_LVDS_PLL_CNTL); + lvds_pll_cntl |= RADEON_LVDS_PLL_EN; + bus_write_4(sc->sc_memr, RADEON_LVDS_PLL_CNTL, lvds_pll_cntl); + lvds_pll_cntl &= ~RADEON_LVDS_PLL_RESET; + bus_write_4(sc->sc_memr, RADEON_LVDS_PLL_CNTL, lvds_pll_cntl); + + lvds_gen_cntl &= ~(RADEON_LVDS_DISPLAY_DIS | + RADEON_LVDS_BL_MOD_LEVEL_MASK); + lvds_gen_cntl |= RADEON_LVDS_ON | RADEON_LVDS_EN | + RADEON_LVDS_DIGON | RADEON_LVDS_BLON; + lvds_gen_cntl |= (newlevel << RADEON_LVDS_BL_MOD_LEVEL_SHIFT) & + RADEON_LVDS_BL_MOD_LEVEL_MASK; + lvds_gen_cntl |= RADEON_LVDS_BL_MOD_EN; + DELAY(2000); + bus_write_4(sc->sc_memr, RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); + } else { + pixclks_cntl = bus_read_4(sc->sc_memr, RADEON_PIXCLKS_CNTL); + bus_write_4(sc->sc_memr, RADEON_PIXCLKS_CNTL, + pixclks_cntl & ~RADEON_PIXCLK_LVDS_ALWAYS_ONb); + lvds_gen_cntl |= RADEON_LVDS_DISPLAY_DIS; + lvds_gen_cntl &= RADEON_LVDS_BL_MOD_EN; + bus_write_4(sc->sc_memr, RADEON_LVDS_GEN_CNTL, lvds_gen_cntl); + lvds_gen_cntl &= ~(RADEON_LVDS_ON | RADEON_LVDS_EN); + DELAY(2000); +
Re: svn commit: r259642 - head/sys/netinet
On 20 December 2013 00:44, Gleb Smirnoff wrote: > I didn't get to review of actual patch, but IMO it would be better > just to remove the code, not ifdef 0 it. The code ifdefed has zero > probability to be enabled in its current form. If we ever fix it, code > would look very different. > > No reason to do followup commit, that was just me muttering. I figured it would be nicer in the short term to #if 0 it out whilst some other discussions went on, just to make it really obvious in the short term where the check was done. It's quite possible I'll eventually just trim it entirely out. Thanks, -a ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259659 - in head/sys: nfs rpc
Author: mav Date: Fri Dec 20 17:39:07 2013 New Revision: 259659 URL: http://svnweb.freebsd.org/changeset/base/259659 Log: Remove several linear list traversals per request from RPC server code. Do not insert active ports into pool->sp_active list if they are success- fully assigned to some thread. This makes that list include only ports that really require attention, and so traversal can be reduced to simple taking the first one. Remove idle thread from pool->sp_idlethreads list when assigning some work (port of requests) to it. That again makes possible to replace list traversals with simple taking the first element. Modified: head/sys/nfs/nfs_fha.c head/sys/rpc/svc.c head/sys/rpc/svc.h Modified: head/sys/nfs/nfs_fha.c == --- head/sys/nfs/nfs_fha.c Fri Dec 20 16:50:52 2013(r259658) +++ head/sys/nfs/nfs_fha.c Fri Dec 20 17:39:07 2013(r259659) @@ -289,19 +289,6 @@ fha_hash_entry_add_op(struct fha_hash_en fhe->num_rw += count; } -static SVCTHREAD * -get_idle_thread(SVCPOOL *pool) -{ - SVCTHREAD *st; - - LIST_FOREACH(st, &pool->sp_idlethreads, st_ilink) { - if (st->st_xprt == NULL && STAILQ_EMPTY(&st->st_reqs)) - return (st); - } - return (NULL); -} - - /* * Get the service thread currently associated with the fhe that is * appropriate to handle this operation. @@ -386,7 +373,7 @@ fha_hash_entry_choose_thread(struct fha_ ITRACE_CURPROC(ITRACE_NFS, ITRACE_INFO, "fha: %p(%d)t", thread, thread->st_reqcount); #endif - } else if ((thread = get_idle_thread(pool))) { + } else if ((thread = LIST_FIRST(&pool->sp_idlethreads))) { #if 0 ITRACE_CURPROC(ITRACE_NFS, ITRACE_INFO, "fha: %p(%d)i", thread, thread->st_reqcount); @@ -418,7 +405,6 @@ SVCTHREAD * fha_assign(SVCTHREAD *this_thread, struct svc_req *req, struct fha_params *softc) { - SVCPOOL *pool; SVCTHREAD *thread; struct fha_info i; struct fha_hash_entry *fhe; @@ -439,7 +425,6 @@ fha_assign(SVCTHREAD *this_thread, struc if (req->rq_vers != 2 && req->rq_vers != 3) return (this_thread); - pool = req->rq_xprt->xp_pool; fha_extract_info(req, &i, cb); /* Modified: head/sys/rpc/svc.c == --- head/sys/rpc/svc.c Fri Dec 20 16:50:52 2013(r259658) +++ head/sys/rpc/svc.c Fri Dec 20 17:39:07 2013(r259659) @@ -293,12 +293,10 @@ xprt_unregister_locked(SVCXPRT *xprt) { SVCPOOL *pool = xprt->xp_pool; + mtx_assert(&xprt->xp_mlock, MA_OWNED); KASSERT(xprt->xp_registered == TRUE, ("xprt_unregister_locked: not registered")); - if (xprt->xp_active) { - TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink); - xprt->xp_active = FALSE; - } + xprt_inactive_locked(xprt); TAILQ_REMOVE(&pool->sp_xlist, xprt, xp_link); xprt->xp_registered = FALSE; } @@ -320,25 +318,25 @@ xprt_unregister(SVCXPRT *xprt) SVC_RELEASE(xprt); } -static void +/* + * Attempt to assign a service thread to this transport. + */ +static int xprt_assignthread(SVCXPRT *xprt) { SVCPOOL *pool = xprt->xp_pool; SVCTHREAD *st; - /* -* Attempt to assign a service thread to this -* transport. -*/ - LIST_FOREACH(st, &pool->sp_idlethreads, st_ilink) { - if (st->st_xprt == NULL && STAILQ_EMPTY(&st->st_reqs)) - break; - } + mtx_assert(&xprt->xp_mlock, MA_OWNED); + st = LIST_FIRST(&pool->sp_idlethreads); if (st) { + LIST_REMOVE(st, st_ilink); + st->st_idle = FALSE; SVC_ACQUIRE(xprt); xprt->xp_thread = st; st->st_xprt = xprt; cv_signal(&st->st_cond); + return (TRUE); } else { /* * See if we can create a new thread. The @@ -354,6 +352,7 @@ xprt_assignthread(SVCXPRT *xprt) pool->sp_state = SVCPOOL_THREADWANTED; } } + return (FALSE); } void @@ -372,9 +371,12 @@ xprt_active(SVCXPRT *xprt) } if (!xprt->xp_active) { - TAILQ_INSERT_TAIL(&pool->sp_active, xprt, xp_alink); xprt->xp_active = TRUE; - xprt_assignthread(xprt); + if (xprt->xp_thread == NULL) { + if (!xprt_assignthread(xprt)) + TAILQ_INSERT_TAIL(&pool->sp_active, xprt, + xp_alink); + } } mtx_unlock(&pool->sp_lock); @@ -385,8 +387,10 @@ xprt_inacti
Re: svn commit: r259642 - head/sys/netinet
I agree with Gleb, ifdef 0 is silly, after all, that's why we have source history, its not like the offending code is gone forever :) So I guess its both of us muttering Gleb :) Jack On Fri, Dec 20, 2013 at 9:05 AM, Adrian Chadd wrote: > On 20 December 2013 00:44, Gleb Smirnoff wrote: > > > I didn't get to review of actual patch, but IMO it would be better > > just to remove the code, not ifdef 0 it. The code ifdefed has zero > > probability to be enabled in its current form. If we ever fix it, code > > would look very different. > > > > No reason to do followup commit, that was just me muttering. > > I figured it would be nicer in the short term to #if 0 it out whilst > some other discussions went on, just to make it really obvious in the > short term where the check was done. It's quite possible I'll > eventually just trim it entirely out. > > Thanks, > > > -a > ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259660 - head/contrib/gcc/cp
Author: pfg Date: Fri Dec 20 18:09:34 2013 New Revision: 259660 URL: http://svnweb.freebsd.org/changeset/base/259660 Log: gcc: revert Rvalue references. They are very useful but at this time I prefer not to figure out some minor conflicts with the bigger Apple's blocks support patch that is being worked on for current. Modified: head/contrib/gcc/cp/ChangeLog.gcc43 head/contrib/gcc/cp/call.c head/contrib/gcc/cp/cp-tree.h head/contrib/gcc/cp/decl.c head/contrib/gcc/cp/error.c head/contrib/gcc/cp/except.c head/contrib/gcc/cp/mangle.c head/contrib/gcc/cp/parser.c head/contrib/gcc/cp/pt.c head/contrib/gcc/cp/tree.c head/contrib/gcc/cp/typeck.c Modified: head/contrib/gcc/cp/ChangeLog.gcc43 == --- head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 17:39:07 2013 (r259659) +++ head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 18:09:34 2013 (r259660) @@ -35,65 +35,6 @@ * typeck.c (build_binary_op): Include types in error. -2007-05-30 Russell Yanofsky (r125211) -Douglas Gregor -Pedro Lamarao -Howard Hinnant - - PR c++/7412 - PR c++/29939 - * typeck.c (comptypes): Don't consider rvalue and lvalue - reference types to be equivalent. - (check_return_expr): Move from certain lvalues when returning - them. - * decl.c (grokdeclarator): Implement reference collapsing. - (copy_fn_p): Don't consider constructors taking rvalue references - to be copy constructors. - (move_fn_p): New. -* call.c (conversion): New "rvaluedness_matches_p" member. - (convert_class_to_reference): Require reference type as first - parameter instead of base type. - (reference_binding): Add logic to handle rvalue references. - (implicit_conversion): Update inaccurate comment. - (convert_like_real): Disable creation of temporaries that are - impossible to initialize for types with move constructors. - (build_over_call): Elide move constructors when possible. - (maybe_handle_implicit_object): Set "rvaluedness_matches_p". - (maybe_handle_ref_bind): Return conversion instead of type node. - (compare_ics): Add logic to use "rvaluedness_matches_p" values to - determine preferred conversion sequences. - * cp-tree.h (TYPE_REF_IS_RVALUE): New. - (LOOKUP_PREFER_RVALUE): New. - (DECL_MOVE_CONSTRUCTOR_P): New. - (struct cp_declarator): Add "reference" member for reference - types, with new "rvalue_ref" flag. - (cp_build_reference_type): Declare. - (move_fn_p): Declare. - * error.c (dump_type_prefix): Format rvalue reference types - correctly in error messages. - * except.c (build_throw): Move from certain lvalues when - throwing. - * mangle.c (write_type): Mangle rvalue references differently - than regular references. - * parser.c (make_reference_declarator): Add boolean parameter for - rvalue references. - (cp_parser_make_indirect_declarator): New. - (cp_parser_new_declarator_opt): Call - cp_parser_make_indirect_declarator. - (cp_parser_conversion_declarator_opt): Ditto. - (cp_parser_declarator): Ditto. - (cp_parser_ptr_operator): Parse "&&" tokens into rvalue reference - declarators. - * pt.c (tsubst): Implement reference collapsing. - (maybe_adjust_types_for_deduction): Implement special template - parameter deduction rule for rvalue references. - (type_unification_real): Update calls to - maybe_adjust_types_for_deduction. - (try_one_overload): Ditto. - (unify_pack_expansion): Ditto. - * tree.c (lvalue_p_1): Handle rvalue reference types. - (cp_build_reference_type): New. - 2007-05-18 Geoffrey Keating (r124839) * mangle.c (write_real_cst): Use 'unsigned long' for %lx. Modified: head/contrib/gcc/cp/call.c == --- head/contrib/gcc/cp/call.c Fri Dec 20 17:39:07 2013(r259659) +++ head/contrib/gcc/cp/call.c Fri Dec 20 18:09:34 2013(r259660) @@ -95,10 +95,6 @@ struct conversion { /* If KIND is ck_ptr or ck_pmem, true to indicate that a conversion from a pointer-to-derived to pointer-to-base is being performed. */ BOOL_BITFIELD base_p : 1; - /* If KIND is ck_ref_bind, true when either an lvalue reference is - being bound to an lvalue expression or an rvalue reference is - being bound to an rvalue expression. */ - BOOL_BITFIELD rvaluedness_matches_p: 1; /* The type of the expression resulting from the conversion. */ tree type; union { @@ -178,7 +174,7 @@ static conversion *standard_conversion ( static conversion *reference_binding (tree, tree, tree, bool, int); static conversion *build_conv (conversion_kind, tree, conversion *); static bool
svn commit: r259661 - in head/contrib/gcc: . cp doc
Author: pfg Date: Fri Dec 20 18:16:02 2013 New Revision: 259661 URL: http://svnweb.freebsd.org/changeset/base/259661 Log: Revert r259619: Fixes GCC libstdc++/29286 The fix seems to work for amd64 but causes segfaults on powerpc. At this time gcc is much more important on powerpc than on amd64. Reported by: andreast Modified: head/contrib/gcc/ChangeLog.gcc43 head/contrib/gcc/cp/ChangeLog.gcc43 head/contrib/gcc/cp/init.c head/contrib/gcc/doc/c-tree.texi head/contrib/gcc/expr.c head/contrib/gcc/gimple-low.c head/contrib/gcc/gimplify.c head/contrib/gcc/omp-low.c head/contrib/gcc/print-tree.c head/contrib/gcc/tree-gimple.c head/contrib/gcc/tree-inline.c head/contrib/gcc/tree-pretty-print.c head/contrib/gcc/tree-ssa-alias.c head/contrib/gcc/tree-ssa-dce.c head/contrib/gcc/tree-ssa-operands.c head/contrib/gcc/tree-ssa-structalias.c head/contrib/gcc/tree.def head/contrib/gcc/tree.h Modified: head/contrib/gcc/ChangeLog.gcc43 == --- head/contrib/gcc/ChangeLog.gcc43Fri Dec 20 18:09:34 2013 (r259660) +++ head/contrib/gcc/ChangeLog.gcc43Fri Dec 20 18:16:02 2013 (r259661) @@ -65,48 +65,6 @@ fvisibility-ms-compat. * c.opt (fvisibility-ms-compat): New. -2007-06-12 Ian Lance Taylor (r125653) - Daniel Berlin - - PR libstdc++/29286 - * tree.def: Add CHANGE_DYNAMIC_TYPE_EXPR. - * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Define. - (CHANGE_DYNAMIC_TYPE_LOCATION): Define. - (DECL_NO_TBAA_P): Define. - (struct tree_decl_common): Add no_tbaa_flag field. - * tree-ssa-structalias.c (struct variable_info): Add - no_tbaa_pruning field. - (new_var_info): Initialize no_tbaa_pruning field. - (unify_nodes): Copy no_tbaa_pruning field. - (find_func_aliases): Handle CHANGE_DYNAMIC_TYPE_EXPR. - (dump_solution_for_var): Print no_tbaa_pruning flag. - (set_uids_in_ptset): Add no_tbaa_pruning parameter. Change all - callers. - (compute_tbaa_pruning): New static function. - (compute_points_to_sets): Remove CHANGE_DYNAMIC_TYPE_EXPR nodes. - Call compute_tbaa_pruning. - * tree-ssa-alias.c (may_alias_p): Test no_tbaa_flag for pointers. - * gimplify.c (gimplify_expr): Handle CHANGE_DYNAMIC_TYPE_EXPR. - * gimple-low.c (lower_stmt): Likewise. - * tree-gimple.c (is_gimple_stmt): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - * tree-inline.c (estimate_num_insns_1): Likewise. - (copy_result_decl_to_var): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-inline.c (copy_decl_to_var): Copy DECL_NO_TBAA_P flag. - * omp-low.c (omp_copy_decl_2): Likewise. - * print-tree.c (print_node): Print DECL_NO_TBAA_P flag. - * doc/c-tree.texi (Expression trees): Document - CHANGE_DYNAMIC_TYPE_EXPR. - -2007-06-09 Daniel Berlin (r125603) - - * tree-ssa-structalias.c (set_uids_in_ptset): Add is_deref'd - parameter, use it. - (find_what_p_points_to): Pass new parameter to set_uids_in_ptset. - 2007-06-05 Joerg Wunsch (r125346) PR preprocessor/23479 Modified: head/contrib/gcc/cp/ChangeLog.gcc43 == --- head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 18:09:34 2013 (r259660) +++ head/contrib/gcc/cp/ChangeLog.gcc43 Fri Dec 20 18:16:02 2013 (r259661) @@ -25,12 +25,6 @@ * decl2.c (determine_visibility): Remove duplicate code for handling type info. -2007-06-12 Ian Lance Taylor (r125653) - - PR libstdc++/29286 - * init.c (avoid_placement_new_aliasing): New static function. - (build_new_1): Call it. - 2007-05-31 Daniel Berlin (r125239) * typeck.c (build_binary_op): Include types in error. Modified: head/contrib/gcc/cp/init.c == --- head/contrib/gcc/cp/init.c Fri Dec 20 18:09:34 2013(r259660) +++ head/contrib/gcc/cp/init.c Fri Dec 20 18:16:02 2013(r259661) @@ -1,7 +1,6 @@ /* Handle initialization things in C++. Copyright (C) 1987, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, - 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 - Free Software Foundation, Inc. + 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. Contributed by Michael Tiemann (tiem...@cygnus.com) This file is part of GCC. @@ -1565,55 +1564,6 @@ build_raw_new_expr (tree placement, tree return new_expr; } -/* Make sure that there are no aliasing issues with T, a placement new - expression applied to PLACEMENT, by recording the change in dynamic - type. If placement new is inlin
Re: svn commit: r259641 - in head/sys/amd64: amd64 include vmm/intel
On Thu, Dec 19, 2013 at 9:50 PM, Neel Natu wrote: > Author: neel > Date: Fri Dec 20 05:50:22 2013 > New Revision: 259641 > URL: http://svnweb.freebsd.org/changeset/base/259641 > > Log: > Re-arrange bits in the amd64/pmap 'pm_flags' field. > > The least significant 8 bits of 'pm_flags' are now used for the IPI > vector > to use for nested page table TLB shootdown. > > Previously we used IPI_AST to interrupt the host cpu which is > functionally > correct but could lead to misleading interrupt counts for AST handler. > The > AST handler was also doing a lot more than what is required for the > nested > page table TLB shootdown (EOI and IRET). > This represents a KBI change, does it not? Should __FreeBSD_version be bumped? -Ben ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259641 - in head/sys/amd64: amd64 include vmm/intel
Hi Ben, On Fri, Dec 20, 2013 at 10:27 AM, Benjamin Kaduk wrote: > On Thu, Dec 19, 2013 at 9:50 PM, Neel Natu wrote: >> >> Author: neel >> Date: Fri Dec 20 05:50:22 2013 >> New Revision: 259641 >> URL: http://svnweb.freebsd.org/changeset/base/259641 >> >> Log: >> Re-arrange bits in the amd64/pmap 'pm_flags' field. >> >> The least significant 8 bits of 'pm_flags' are now used for the IPI >> vector >> to use for nested page table TLB shootdown. >> >> Previously we used IPI_AST to interrupt the host cpu which is >> functionally >> correct but could lead to misleading interrupt counts for AST handler. >> The >> AST handler was also doing a lot more than what is required for the >> nested >> page table TLB shootdown (EOI and IRET). > > > This represents a KBI change, does it not? Should __FreeBSD_version be > bumped? > I was under the impression that a bump would be required only if this change is MFCed to a stable branch. I could be wrong about this and if so would be happy to rectify it. best Neel > -Ben ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259662 - head/sys/rpc
Author: glebius Date: Fri Dec 20 19:44:29 2013 New Revision: 259662 URL: http://svnweb.freebsd.org/changeset/base/259662 Log: Fix build. Modified: head/sys/rpc/svc.c Modified: head/sys/rpc/svc.c == --- head/sys/rpc/svc.c Fri Dec 20 18:16:02 2013(r259661) +++ head/sys/rpc/svc.c Fri Dec 20 19:44:29 2013(r259662) @@ -293,7 +293,7 @@ xprt_unregister_locked(SVCXPRT *xprt) { SVCPOOL *pool = xprt->xp_pool; - mtx_assert(&xprt->xp_mlock, MA_OWNED); + mtx_assert(&pool->sp_lock, MA_OWNED); KASSERT(xprt->xp_registered == TRUE, ("xprt_unregister_locked: not registered")); xprt_inactive_locked(xprt); @@ -327,7 +327,7 @@ xprt_assignthread(SVCXPRT *xprt) SVCPOOL *pool = xprt->xp_pool; SVCTHREAD *st; - mtx_assert(&xprt->xp_mlock, MA_OWNED); + mtx_assert(&pool->sp_lock, MA_OWNED); st = LIST_FIRST(&pool->sp_idlethreads); if (st) { LIST_REMOVE(st, st_ilink); @@ -387,7 +387,7 @@ xprt_inactive_locked(SVCXPRT *xprt) { SVCPOOL *pool = xprt->xp_pool; - mtx_assert(&xprt->xp_mlock, MA_OWNED); + mtx_assert(&pool->sp_lock, MA_OWNED); if (xprt->xp_active) { if (xprt->xp_thread == NULL) TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink); ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259663 - head/sys/kern
Author: glebius Date: Fri Dec 20 19:45:51 2013 New Revision: 259663 URL: http://svnweb.freebsd.org/changeset/base/259663 Log: Move list of ttys handling from the allocating procedures, to the device creation stage. A device creation can fail, and in that case an entry already on the list will be freed. Sponsored by: Nginx, Inc. Modified: head/sys/kern/tty.c Modified: head/sys/kern/tty.c == --- head/sys/kern/tty.c Fri Dec 20 19:44:29 2013(r259662) +++ head/sys/kern/tty.c Fri Dec 20 19:45:51 2013(r259663) @@ -1007,11 +1007,6 @@ tty_alloc_mutex(struct ttydevsw *tsw, vo knlist_init_mtx(&tp->t_inpoll.si_note, tp->t_mtx); knlist_init_mtx(&tp->t_outpoll.si_note, tp->t_mtx); - sx_xlock(&tty_list_sx); - TAILQ_INSERT_TAIL(&tty_list, tp, t_list); - tty_list_count++; - sx_xunlock(&tty_list_sx); - return (tp); } @@ -1020,11 +1015,6 @@ tty_dealloc(void *arg) { struct tty *tp = arg; - sx_xlock(&tty_list_sx); - TAILQ_REMOVE(&tty_list, tp, t_list); - tty_list_count--; - sx_xunlock(&tty_list_sx); - /* Make sure we haven't leaked buffers. */ MPASS(ttyinq_getsize(&tp->t_inq) == 0); MPASS(ttyoutq_getsize(&tp->t_outq) == 0); @@ -1065,6 +1055,11 @@ tty_rel_free(struct tty *tp) tp->t_dev = NULL; tty_unlock(tp); + sx_xlock(&tty_list_sx); + TAILQ_REMOVE(&tty_list, tp, t_list); + tty_list_count--; + sx_xunlock(&tty_list_sx); + if (dev != NULL) destroy_dev_sched_cb(dev, tty_dealloc, tp); } @@ -1279,6 +1274,11 @@ tty_makedevf(struct tty *tp, struct ucre } } + sx_xlock(&tty_list_sx); + TAILQ_INSERT_TAIL(&tty_list, tp, t_list); + tty_list_count++; + sx_xunlock(&tty_list_sx); + return (0); fail: ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259665 - head/sys/dev/hwpmc
Author: gnn Date: Fri Dec 20 20:22:10 2013 New Revision: 259665 URL: http://svnweb.freebsd.org/changeset/base/259665 Log: Add another Haswell model (0x45) to the set of supported chips. Model 0x45 appears, for example, in late 2013 Mac Book Pro models and is properly emulated by VMware. Modified: head/sys/dev/hwpmc/hwpmc_intel.c Modified: head/sys/dev/hwpmc/hwpmc_intel.c == --- head/sys/dev/hwpmc/hwpmc_intel.cFri Dec 20 20:14:54 2013 (r259664) +++ head/sys/dev/hwpmc/hwpmc_intel.cFri Dec 20 20:22:10 2013 (r259665) @@ -173,6 +173,7 @@ pmc_intel_initialize(void) nclasses = 3; break; case 0x3C: /* Per Intel document 325462-045US 01/2013. */ + case 0x45: cputype = PMC_CPU_INTEL_HASWELL; nclasses = 5; break; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259666 - in head/contrib/gcc: . cp
Author: pfg Date: Fri Dec 20 20:57:13 2013 New Revision: 259666 URL: http://svnweb.freebsd.org/changeset/base/259666 Log: gcc: clean some warnings from -Wformat-security Obtained from:Apple GCC 4.2 - 5646 (Radar 5764921) MFC after:1 week Modified: head/contrib/gcc/c-common.c head/contrib/gcc/c-convert.c head/contrib/gcc/c-incpath.c head/contrib/gcc/c-typeck.c head/contrib/gcc/cfg.c head/contrib/gcc/collect2.c head/contrib/gcc/cp/cvt.c head/contrib/gcc/cp/pt.c head/contrib/gcc/cp/typeck.c head/contrib/gcc/fold-const.c head/contrib/gcc/gcc.c head/contrib/gcc/gcov.c head/contrib/gcc/tlink.c Modified: head/contrib/gcc/c-common.c == --- head/contrib/gcc/c-common.c Fri Dec 20 20:22:10 2013(r259665) +++ head/contrib/gcc/c-common.c Fri Dec 20 20:57:13 2013(r259666) @@ -6014,11 +6014,11 @@ c_parse_error (const char *gmsgid, enum message = NULL; } else -error (gmsgid); +error (gmsgid, ""); if (message) { - error (message); + error (message, ""); free (message); } #undef catenate_messages Modified: head/contrib/gcc/c-convert.c == --- head/contrib/gcc/c-convert.cFri Dec 20 20:22:10 2013 (r259665) +++ head/contrib/gcc/c-convert.cFri Dec 20 20:57:13 2013 (r259666) @@ -80,7 +80,7 @@ convert (tree type, tree expr) if ((invalid_conv_diag = targetm.invalid_conversion (TREE_TYPE (expr), type))) { - error (invalid_conv_diag); + error (invalid_conv_diag, ""); return error_mark_node; } Modified: head/contrib/gcc/c-incpath.c == --- head/contrib/gcc/c-incpath.cFri Dec 20 20:22:10 2013 (r259665) +++ head/contrib/gcc/c-incpath.cFri Dec 20 20:57:13 2013 (r259666) @@ -72,7 +72,7 @@ free_path (struct cpp_dir *path, int rea case REASON_DUP_SYS: fprintf (stderr, _("ignoring duplicate directory \"%s\"\n"), path->name); if (reason == REASON_DUP_SYS) - fprintf (stderr, + fprintf (stderr, "%s", _(" as it is a non-system directory that duplicates a system directory\n")); break; @@ -292,16 +292,16 @@ merge_include_chains (cpp_reader *pfile, { struct cpp_dir *p; - fprintf (stderr, _("#include \"...\" search starts here:\n")); + fprintf (stderr, "%s", _("#include \"...\" search starts here:\n")); for (p = heads[QUOTE];; p = p->next) { if (p == heads[BRACKET]) - fprintf (stderr, _("#include <...> search starts here:\n")); + fprintf (stderr, "%s", _("#include <...> search starts here:\n")); if (!p) break; fprintf (stderr, " %s\n", p->name); } - fprintf (stderr, _("End of search list.\n")); + fprintf (stderr, "%s", _("End of search list.\n")); } } Modified: head/contrib/gcc/c-typeck.c == --- head/contrib/gcc/c-typeck.c Fri Dec 20 20:22:10 2013(r259665) +++ head/contrib/gcc/c-typeck.c Fri Dec 20 20:57:13 2013(r259666) @@ -2584,7 +2584,7 @@ convert_arguments (tree typelist, tree v else if ((invalid_func_diag = targetm.calls.invalid_arg_for_unprototyped_fn (typelist, fundecl, val))) { - error (invalid_func_diag); + error (invalid_func_diag, ""); return error_mark_node; } else @@ -2781,7 +2781,7 @@ build_unary_op (enum tree_code code, tre if ((invalid_op_diag = targetm.invalid_unary_op (code, TREE_TYPE (xarg { - error (invalid_op_diag); + error (invalid_op_diag, ""); return error_mark_node; } @@ -7819,7 +7819,7 @@ build_binary_op (enum tree_code code, tr if ((invalid_op_diag = targetm.invalid_binary_op (code, type0, type1))) { - error (invalid_op_diag); + error (invalid_op_diag, ""); return error_mark_node; } Modified: head/contrib/gcc/cfg.c == --- head/contrib/gcc/cfg.c Fri Dec 20 20:22:10 2013(r259665) +++ head/contrib/gcc/cfg.c Fri Dec 20 20:57:13 2013(r259666) @@ -830,7 +830,7 @@ dump_cfg_bb_info (FILE *file, basic_bloc else fprintf (file, ", "); first = false; - fputs (bb_bitnames[i], file); + fprintf (file, "%s", bb_bitnames[i]); } if (!first) fprintf (file, ")"); Modified: head/contrib/gcc/collect2.c == --- head/contrib/gcc/collect2.c Fri Dec 20 20:22:10 2013(r259665) +++ head/contrib/gcc/collect2.c Fri Dec 20 20:57:13 2013(r259666) @@ -156
svn commit: r259667 - in head/sys: dev/syscons dev/vt kern sys teken teken/demo
Author: ed Date: Fri Dec 20 21:31:50 2013 New Revision: 259667 URL: http://svnweb.freebsd.org/changeset/base/259667 Log: Extend libteken to support CJK fullwidth characters. Introduce a new formatting bit (TF_CJK_RIGHT) that is set when putting a cell that is the right part of a CJK fullwidth character. This will allow drivers like vt(9) to support fullwidth characters properly. emaste@ has a patch to extend vt(9)'s font handling to increase the number of Unicode -> glyph maps from 2 ({normal,bold)} to 4 ({normal,bold} x {left,right}). This will need to use this formatting bit to determine whether to draw the left or right glyph. Reviewed by: emaste Modified: head/sys/dev/syscons/scterm-teken.c head/sys/dev/vt/vt_font.c head/sys/kern/subr_terminal.c head/sys/sys/terminal.h head/sys/teken/demo/teken_demo.c head/sys/teken/teken.h head/sys/teken/teken_subr.h Modified: head/sys/dev/syscons/scterm-teken.c == --- head/sys/dev/syscons/scterm-teken.c Fri Dec 20 20:57:13 2013 (r259666) +++ head/sys/dev/syscons/scterm-teken.c Fri Dec 20 21:31:50 2013 (r259667) @@ -553,7 +553,14 @@ scteken_putchar(void *arg, const teken_p vm_offset_t p; int cursor, attr; + /* +* No support for printing right hand sides for CJK fullwidth +* characters. Simply print a space and assume that the left +* hand side describes the entire character. +*/ attr = scteken_attr(a) << 8; + if (a->ta_format & TF_CJK_RIGHT) + c = ' '; #ifdef TEKEN_UTF8 scteken_get_cp437(&c, &attr); #endif /* TEKEN_UTF8 */ Modified: head/sys/dev/vt/vt_font.c == --- head/sys/dev/vt/vt_font.c Fri Dec 20 20:57:13 2013(r259666) +++ head/sys/dev/vt/vt_font.c Fri Dec 20 21:31:50 2013(r259667) @@ -87,7 +87,15 @@ vtfont_lookup(const struct vt_font *vf, uint16_t dst; size_t stride; + /* +* No support for printing right hand sides for CJK fullwidth +* characters. Simply print a space and assume that the left +* hand side describes the entire character. +*/ src = TCHAR_CHARACTER(c); + if (TCHAR_FORMAT(c) & TF_CJK_RIGHT) + src = ' '; + if (TCHAR_FORMAT(c) & TF_BOLD) { dst = vtfont_bisearch(vf->vf_bold, vf->vf_bold_length, src); if (dst != 0) Modified: head/sys/kern/subr_terminal.c == --- head/sys/kern/subr_terminal.c Fri Dec 20 20:57:13 2013 (r259666) +++ head/sys/kern/subr_terminal.c Fri Dec 20 21:31:50 2013 (r259667) @@ -128,7 +128,7 @@ static const teken_attr_t default_messag }; #defineTCHAR_CREATE(c, a) ((c) | \ - (a)->ta_format << 22 | \ + (a)->ta_format << 21 | \ teken_256to8((a)->ta_fgcolor) << 26 | \ teken_256to8((a)->ta_bgcolor) << 29) Modified: head/sys/sys/terminal.h == --- head/sys/sys/terminal.h Fri Dec 20 20:57:13 2013(r259666) +++ head/sys/sys/terminal.h Fri Dec 20 21:31:50 2013(r259667) @@ -62,15 +62,14 @@ struct tty; * * Bits Meaning * 0-20: Character value - *21: Unused - * 22-25: Bold, underline, blink, reverse + * 21-25: Bold, underline, blink, reverse, right part of CJK fullwidth character * 26-28: Foreground color * 29-31: Background color */ typedef uint32_t term_char_t; #defineTCHAR_CHARACTER(c) ((c) & 0x1f) -#defineTCHAR_FORMAT(c) (((c) >> 22) & 0xf) +#defineTCHAR_FORMAT(c) (((c) >> 21) & 0x1f) #defineTCHAR_FGCOLOR(c)(((c) >> 26) & 0x7) #defineTCHAR_BGCOLOR(c)((c) >> 29) Modified: head/sys/teken/demo/teken_demo.c == --- head/sys/teken/demo/teken_demo.cFri Dec 20 20:57:13 2013 (r259666) +++ head/sys/teken/demo/teken_demo.cFri Dec 20 21:31:50 2013 (r259667) @@ -86,9 +86,10 @@ printchar(const teken_pos_t *p) assert(p->tp_row < NROWS); assert(p->tp_col < NCOLS); - getyx(stdscr, y, x); - px = &buffer[p->tp_col][p->tp_row]; + /* No need to print right hand side of CJK character manually. */ + if (px->a.ta_format & TF_CJK_RIGHT) + return; /* Convert Unicode to UTF-8. */ if (px->c < 0x80) { @@ -118,8 +119,8 @@ printchar(const teken_pos_t *p) bkgdset(attr | COLOR_PAIR(teken_256to8(px->a.ta_fgcolor) + 8 * teken_256to8(px->a.ta_bgcolor))); + getyx(stdscr, y, x); mvaddstr(p->tp_row, p->tp_col, str); - move(y, x); } Modified: head/sys/teken/teken
Re: svn commit: r259641 - in head/sys/amd64: amd64 include vmm/intel
On Fri, 20 Dec 2013, Neel Natu wrote: Hi Ben, On Fri, Dec 20, 2013 at 10:27 AM, Benjamin Kaduk wrote: On Thu, Dec 19, 2013 at 9:50 PM, Neel Natu wrote: Author: neel Date: Fri Dec 20 05:50:22 2013 New Revision: 259641 URL: http://svnweb.freebsd.org/changeset/base/259641 Log: Re-arrange bits in the amd64/pmap 'pm_flags' field. The least significant 8 bits of 'pm_flags' are now used for the IPI vector to use for nested page table TLB shootdown. Previously we used IPI_AST to interrupt the host cpu which is functionally correct but could lead to misleading interrupt counts for AST handler. The AST handler was also doing a lot more than what is required for the nested page table TLB shootdown (EOI and IRET). This represents a KBI change, does it not? Should __FreeBSD_version be bumped? I was under the impression that a bump would be required only if this change is MFCed to a stable branch. I could be wrong about this and if so would be happy to rectify it. I guess KBI is probably okay, that's true. I have had a lot of headaches with KPI changes on -current and third-party modules, so I am a bit sensitive. I'm also recovering from a laptop theft while on vacation, and thus a bit discombobulated. Thanks, Ben ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259668 - head/sys/cddl/dev/fbt
Author: jhibbits Date: Fri Dec 20 23:18:14 2013 New Revision: 259668 URL: http://svnweb.freebsd.org/changeset/base/259668 Log: Fix a couple bugs in FBT PowerPC. Clamp the size to a 'instruction size' not 'byte size', and fix a typo. MFC after:2 weeks Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c == --- head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 21:31:50 2013 (r259667) +++ head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 23:18:14 2013 (r259668) @@ -219,7 +219,7 @@ fbt_provide_module_function(linker_file_ return (0); instr = (u_int32_t *) symval->value; - limit = (u_int32_t *) (symval->value + symval->size); + limit = (u_int32_t *) (symval->value + symval->size / sizeof(u_int32_t)); for (; instr < limit; instr++) if (*instr == FBT_MFLR_R0) @@ -278,7 +278,7 @@ again: instr++; for (j = 0; j < 12 && instr < limit; j++, instr++) { - if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) | + if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) || FBT_IS_JUMP(*instr)) break; } ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259669 - head
Author: jmg Date: Fri Dec 20 23:34:10 2013 New Revision: 259669 URL: http://svnweb.freebsd.org/changeset/base/259669 Log: document how to install when src is newer than the world.. This allows people to build -current systems from older systems... Thanks to: Thomas Mueller Modified: head/UPDATING Modified: head/UPDATING == --- head/UPDATING Fri Dec 20 23:18:14 2013(r259668) +++ head/UPDATING Fri Dec 20 23:34:10 2013(r259669) @@ -1943,7 +1943,7 @@ COMMON ITEMS: make buildkernel KERNCONF=YOUR_KERNEL_HERE - make installworld DESTDIR=${CURRENT_ROOT} + make installworld DESTDIR=${CURRENT_ROOT} -DDB_FROM_SRC make distribution DESTDIR=${CURRENT_ROOT} # if newfs'd make installkernel KERNCONF=YOUR_KERNEL_HERE DESTDIR=${CURRENT_ROOT} cp /etc/fstab ${CURRENT_ROOT}/etc/fstab# if newfs'd ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259670 - head/share/man/man9
Author: jmg Date: Fri Dec 20 23:57:05 2013 New Revision: 259670 URL: http://svnweb.freebsd.org/changeset/base/259670 Log: document the m_getjcl function... Modified: head/share/man/man9/Makefile head/share/man/man9/mbuf.9 Modified: head/share/man/man9/Makefile == --- head/share/man/man9/MakefileFri Dec 20 23:34:10 2013 (r259669) +++ head/share/man/man9/MakefileFri Dec 20 23:57:05 2013 (r259670) @@ -901,6 +901,7 @@ MLINKS+=\ mbuf.9 m_freem.9 \ mbuf.9 MGET.9 \ mbuf.9 m_get.9 \ + mbuf.9 m_getjcl.9 \ mbuf.9 m_getcl.9 \ mbuf.9 m_getclr.9 \ mbuf.9 MGETHDR.9 \ Modified: head/share/man/man9/mbuf.9 == --- head/share/man/man9/mbuf.9 Fri Dec 20 23:34:10 2013(r259669) +++ head/share/man/man9/mbuf.9 Fri Dec 20 23:57:05 2013(r259670) @@ -74,6 +74,8 @@ .Ft struct mbuf * .Fn m_getm "struct mbuf *orig" "int len" "int how" "int type" .Ft struct mbuf * +.Fn m_getjcl "int how" "short type" "int flags" "int size" +.Ft struct mbuf * .Fn m_getcl "int how" "short type" "int flags" .Ft struct mbuf * .Fn m_getclr "int how" "int type" @@ -592,6 +594,12 @@ together, as it avoids having to unlock/ Returns .Dv NULL on failure. +.It Fn m_getjcl how type flags size +This is like +.Fn m_getcl +but it the size of the cluster allocated will be large enough for +.Fa size +bytes. .It Fn m_getclr how type Allocate an .Vt mbuf ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259670 - head/share/man/man9
On Fri, Dec 20, 2013 at 11:57:05PM +, John-Mark Gurney wrote: > Author: jmg > Date: Fri Dec 20 23:57:05 2013 > New Revision: 259670 > URL: http://svnweb.freebsd.org/changeset/base/259670 > > Log: > document the m_getjcl function... > > Modified: > head/share/man/man9/Makefile > head/share/man/man9/mbuf.9 > > Modified: head/share/man/man9/Makefile > == > --- head/share/man/man9/Makefile Fri Dec 20 23:34:10 2013 > (r259669) > +++ head/share/man/man9/Makefile Fri Dec 20 23:57:05 2013 > (r259670) > @@ -901,6 +901,7 @@ MLINKS+=\ > mbuf.9 m_freem.9 \ > mbuf.9 MGET.9 \ > mbuf.9 m_get.9 \ > + mbuf.9 m_getjcl.9 \ > mbuf.9 m_getcl.9 \ > mbuf.9 m_getclr.9 \ > mbuf.9 MGETHDR.9 \ > > Modified: head/share/man/man9/mbuf.9 > == > --- head/share/man/man9/mbuf.9Fri Dec 20 23:34:10 2013 > (r259669) > +++ head/share/man/man9/mbuf.9Fri Dec 20 23:57:05 2013 > (r259670) > @@ -74,6 +74,8 @@ > .Ft struct mbuf * > .Fn m_getm "struct mbuf *orig" "int len" "int how" "int type" > .Ft struct mbuf * > +.Fn m_getjcl "int how" "short type" "int flags" "int size" > +.Ft struct mbuf * > .Fn m_getcl "int how" "short type" "int flags" > .Ft struct mbuf * > .Fn m_getclr "int how" "int type" > @@ -592,6 +594,12 @@ together, as it avoids having to unlock/ > Returns > .Dv NULL > on failure. > +.It Fn m_getjcl how type flags size > +This is like > +.Fn m_getcl > +but it the size of the cluster allocated will be large enough for > +.Fa size > +bytes. > .It Fn m_getclr how type > Allocate an > .Vt mbuf Please bump .Dd. Glen pgprukHTIhtv3.pgp Description: PGP signature
svn commit: r259671 - head/sys/powerpc/powermac
Author: jhibbits Date: Sat Dec 21 00:07:56 2013 New Revision: 259671 URL: http://svnweb.freebsd.org/changeset/base/259671 Log: Add suspend/resume to DBDMA and ATA on PowerMacs. This, and several subsequent commits, are suspend/resume for various PowerMac drivers, which will include a change to the global suspend/resume code eventually. Modified: head/sys/powerpc/powermac/ata_macio.c head/sys/powerpc/powermac/dbdma.c head/sys/powerpc/powermac/dbdmavar.h Modified: head/sys/powerpc/powermac/ata_macio.c == --- head/sys/powerpc/powermac/ata_macio.c Fri Dec 20 23:57:05 2013 (r259670) +++ head/sys/powerpc/powermac/ata_macio.c Sat Dec 21 00:07:56 2013 (r259671) @@ -114,11 +114,15 @@ static int ata_macio_probe(device_t de static int ata_macio_setmode(device_t dev, int target, int mode); static int ata_macio_attach(device_t dev); static int ata_macio_begin_transaction(struct ata_request *request); +static int ata_macio_suspend(device_t dev); +static int ata_macio_resume(device_t dev); static device_method_t ata_macio_methods[] = { /* Device interface */ DEVMETHOD(device_probe, ata_macio_probe), DEVMETHOD(device_attach,ata_macio_attach), + DEVMETHOD(device_suspend, ata_macio_suspend), + DEVMETHOD(device_resume,ata_macio_resume), /* ATA interface */ DEVMETHOD(ata_setmode, ata_macio_setmode), @@ -336,3 +340,34 @@ ata_macio_begin_transaction(struct ata_r return ata_begin_transaction(request); } + +static int +ata_macio_suspend(device_t dev) +{ + struct ata_dbdma_channel *ch = device_get_softc(dev); + int error; + + if (!ch->sc_ch.attached) + return (0); + + error = ata_suspend(dev); + dbdma_save_state(ch->dbdma); + + return (error); +} + +static int +ata_macio_resume(device_t dev) +{ + struct ata_dbdma_channel *ch = device_get_softc(dev); + int error; + + if (!ch->sc_ch.attached) + return (0); + + dbdma_restore_state(ch->dbdma); + error = ata_resume(dev); + + return (error); +} + Modified: head/sys/powerpc/powermac/dbdma.c == --- head/sys/powerpc/powermac/dbdma.c Fri Dec 20 23:57:05 2013 (r259670) +++ head/sys/powerpc/powermac/dbdma.c Sat Dec 21 00:07:56 2013 (r259671) @@ -343,6 +343,31 @@ dbdma_sync_commands(dbdma_channel_t *cha bus_dmamap_sync(chan->sc_dmatag, chan->sc_dmamap, op); } +void +dbdma_save_state(dbdma_channel_t *chan) +{ + + chan->sc_saved_regs[0] = dbdma_read_reg(chan, CHAN_CMDPTR); + chan->sc_saved_regs[1] = dbdma_read_reg(chan, CHAN_CMDPTR_HI); + chan->sc_saved_regs[2] = dbdma_read_reg(chan, CHAN_INTR_SELECT); + chan->sc_saved_regs[3] = dbdma_read_reg(chan, CHAN_BRANCH_SELECT); + chan->sc_saved_regs[4] = dbdma_read_reg(chan, CHAN_WAIT_SELECT); + + dbdma_stop(chan); +} + +void +dbdma_restore_state(dbdma_channel_t *chan) +{ + + dbdma_wake(chan); + dbdma_write_reg(chan, CHAN_CMDPTR, chan->sc_saved_regs[0]); + dbdma_write_reg(chan, CHAN_CMDPTR_HI, chan->sc_saved_regs[1]); + dbdma_write_reg(chan, CHAN_INTR_SELECT, chan->sc_saved_regs[2]); + dbdma_write_reg(chan, CHAN_BRANCH_SELECT, chan->sc_saved_regs[3]); + dbdma_write_reg(chan, CHAN_WAIT_SELECT, chan->sc_saved_regs[4]); +} + static uint32_t dbdma_read_reg(dbdma_channel_t *chan, u_int offset) { Modified: head/sys/powerpc/powermac/dbdmavar.h == --- head/sys/powerpc/powermac/dbdmavar.hFri Dec 20 23:57:05 2013 (r259670) +++ head/sys/powerpc/powermac/dbdmavar.hSat Dec 21 00:07:56 2013 (r259671) @@ -60,6 +60,7 @@ struct dbdma_channel { bus_dma_tag_t sc_dmatag; bus_dmamap_tsc_dmamap; + uint32_tsc_saved_regs[5]; }; ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259670 - head/share/man/man9
Glen Barber wrote this message on Fri, Dec 20, 2013 at 18:59 -0500: > On Fri, Dec 20, 2013 at 11:57:05PM +, John-Mark Gurney wrote: > > Author: jmg > > Date: Fri Dec 20 23:57:05 2013 > > New Revision: 259670 > > URL: http://svnweb.freebsd.org/changeset/base/259670 > > > > Log: > > document the m_getjcl function... > > > > Modified: > > head/share/man/man9/Makefile > > head/share/man/man9/mbuf.9 > > > > Modified: head/share/man/man9/Makefile > > == > > --- head/share/man/man9/MakefileFri Dec 20 23:34:10 2013 > > (r259669) > > +++ head/share/man/man9/MakefileFri Dec 20 23:57:05 2013 > > (r259670) > > @@ -901,6 +901,7 @@ MLINKS+=\ > > mbuf.9 m_freem.9 \ > > mbuf.9 MGET.9 \ > > mbuf.9 m_get.9 \ > > + mbuf.9 m_getjcl.9 \ > > mbuf.9 m_getcl.9 \ > > mbuf.9 m_getclr.9 \ > > mbuf.9 MGETHDR.9 \ > > > > Modified: head/share/man/man9/mbuf.9 > > == > > --- head/share/man/man9/mbuf.9 Fri Dec 20 23:34:10 2013 > > (r259669) > > +++ head/share/man/man9/mbuf.9 Fri Dec 20 23:57:05 2013 > > (r259670) > > @@ -74,6 +74,8 @@ > > .Ft struct mbuf * > > .Fn m_getm "struct mbuf *orig" "int len" "int how" "int type" > > .Ft struct mbuf * > > +.Fn m_getjcl "int how" "short type" "int flags" "int size" > > +.Ft struct mbuf * > > .Fn m_getcl "int how" "short type" "int flags" > > .Ft struct mbuf * > > .Fn m_getclr "int how" "int type" > > @@ -592,6 +594,12 @@ together, as it avoids having to unlock/ > > Returns > > .Dv NULL > > on failure. > > +.It Fn m_getjcl how type flags size > > +This is like > > +.Fn m_getcl > > +but it the size of the cluster allocated will be large enough for > > +.Fa size > > +bytes. > > .It Fn m_getclr how type > > Allocate an > > .Vt mbuf > > Please bump .Dd. Sorry, done in r259672. Thanks for the reminder. -- John-Mark Gurney Voice: +1 415 225 5579 "All that I will do, has been done, All that I have, has not." ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259672 - head/share/man/man9
Author: jmg Date: Sat Dec 21 00:15:37 2013 New Revision: 259672 URL: http://svnweb.freebsd.org/changeset/base/259672 Log: bump Dd Reminded by: gjb Modified: head/share/man/man9/mbuf.9 Modified: head/share/man/man9/mbuf.9 == --- head/share/man/man9/mbuf.9 Sat Dec 21 00:07:56 2013(r259671) +++ head/share/man/man9/mbuf.9 Sat Dec 21 00:15:37 2013(r259672) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd November 13, 2012 +.Dd December 20, 2013 .Dt MBUF 9 .Os .\" ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259670 - head/share/man/man9
On Fri, Dec 20, 2013 at 04:15:57PM -0800, John-Mark Gurney wrote: > > Please bump .Dd. > > Sorry, done in r259672. > > Thanks for the reminder. > Thank you. Glen pgpa5kppZDKJw.pgp Description: PGP signature
Re: svn commit: r259668 - head/sys/cddl/dev/fbt
On Saturday, December 21, 2013, Justin Hibbits wrote: > Author: jhibbits > Date: Fri Dec 20 23:18:14 2013 > New Revision: 259668 > URL: http://svnweb.freebsd.org/changeset/base/259668 > > Log: > Fix a couple bugs in FBT PowerPC. Clamp the size to a 'instruction > size' not > 'byte size', and fix a typo. > > MFC after:2 weeks > > Modified: > head/sys/cddl/dev/fbt/fbt_powerpc.c > > Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c > > == > --- head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 21:31:50 2013 > (r259667) > +++ head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 23:18:14 2013 > (r259668) > @@ -219,7 +219,7 @@ fbt_provide_module_function(linker_file_ > return (0); > > instr = (u_int32_t *) symval->value; > - limit = (u_int32_t *) (symval->value + symval->size); > + limit = (u_int32_t *) (symval->value + symval->size / > sizeof(u_int32_t)); > > This change doesn't look right to me. symval->value is caddr_t (char*). why add instruction size to it? > for (; instr < limit; instr++) > if (*instr == FBT_MFLR_R0) > @@ -278,7 +278,7 @@ again: > instr++; > > for (j = 0; j < 12 && instr < limit; j++, instr++) { > - if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) | > + if ((*instr == FBT_BCTR) || (*instr == FBT_BLR) || > FBT_IS_JUMP(*instr)) > break; > } > ___ > svn-src-head@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to > "svn-src-head-unsubscr...@freebsd.org > " > -- -Howard ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r259668 - head/sys/cddl/dev/fbt
On Sat, 21 Dec 2013 08:31:01 +0800 Howard Su wrote: > On Saturday, December 21, 2013, Justin Hibbits wrote: > > > Author: jhibbits > > Date: Fri Dec 20 23:18:14 2013 > > New Revision: 259668 > > URL: http://svnweb.freebsd.org/changeset/base/259668 > > > > Log: > > Fix a couple bugs in FBT PowerPC. Clamp the size to a > > 'instruction size' not > > 'byte size', and fix a typo. > > > > MFC after:2 weeks > > > > Modified: > > head/sys/cddl/dev/fbt/fbt_powerpc.c > > > > Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c > > > > == > > --- head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 21:31:50 2013 > > (r259667) > > +++ head/sys/cddl/dev/fbt/fbt_powerpc.c Fri Dec 20 23:18:14 2013 > > (r259668) > > @@ -219,7 +219,7 @@ fbt_provide_module_function(linker_file_ > > return (0); > > > > instr = (u_int32_t *) symval->value; > > - limit = (u_int32_t *) (symval->value + symval->size); > > + limit = (u_int32_t *) (symval->value + symval->size / > > sizeof(u_int32_t)); > > > > This change doesn't look right to me. symval->value is caddr_t > > (char*). > why add instruction size to it? D'oh, complete brain-o. I had read it as a size field, not a pointer field. Fixed now. - Justin ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259674 - head/sys/cddl/dev/fbt
Author: jhibbits Date: Sat Dec 21 00:37:32 2013 New Revision: 259674 URL: http://svnweb.freebsd.org/changeset/base/259674 Log: Fix a brain-o. I had misread the limit as a size, but it's a pointer. Submitted by: Howard Su MFC after:2 weeks X-MFC-with: r259668 Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c Modified: head/sys/cddl/dev/fbt/fbt_powerpc.c == --- head/sys/cddl/dev/fbt/fbt_powerpc.c Sat Dec 21 00:20:06 2013 (r259673) +++ head/sys/cddl/dev/fbt/fbt_powerpc.c Sat Dec 21 00:37:32 2013 (r259674) @@ -219,7 +219,7 @@ fbt_provide_module_function(linker_file_ return (0); instr = (u_int32_t *) symval->value; - limit = (u_int32_t *) (symval->value + symval->size / sizeof(u_int32_t)); + limit = (u_int32_t *) (symval->value + symval->size); for (; instr < limit; instr++) if (*instr == FBT_MFLR_R0) ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259675 - in head/sys/dev/usb: . quirk
Author: truckman Date: Sat Dec 21 03:05:13 2013 New Revision: 259675 URL: http://svnweb.freebsd.org/changeset/base/259675 Log: Add quirks to make my old SanDisk Cruzer Mini 128MB happy. MFC after:1 week Modified: head/sys/dev/usb/quirk/usb_quirk.c head/sys/dev/usb/usbdevs Modified: head/sys/dev/usb/quirk/usb_quirk.c == --- head/sys/dev/usb/quirk/usb_quirk.c Sat Dec 21 00:37:32 2013 (r259674) +++ head/sys/dev/usb/quirk/usb_quirk.c Sat Dec 21 03:05:13 2013 (r259675) @@ -332,6 +332,9 @@ static struct usb_quirk_entry usb_quirks USB_QUIRK(SANDISK, SDDR12, 0x, 0x, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN), + USB_QUIRK(SANDISK, SDCZ2_128, 0x, 0x, UQ_MSC_FORCE_WIRE_BBB, + UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE, + UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(SANDISK, SDCZ2_256, 0x, 0x, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_IGNORE_RESIDUE), USB_QUIRK(SANDISK, SDCZ4_128, 0x, 0x, UQ_MSC_FORCE_WIRE_BBB, Modified: head/sys/dev/usb/usbdevs == --- head/sys/dev/usb/usbdevsSat Dec 21 00:37:32 2013(r259674) +++ head/sys/dev/usb/usbdevsSat Dec 21 03:05:13 2013(r259675) @@ -3718,6 +3718,7 @@ product SANDISK SDDR050x0005 ImageMate product SANDISK SDDR12 0x0100 ImageMate SDDR-12 product SANDISK SDDR09 0x0200 ImageMate SDDR-09 product SANDISK SDDR75 0x0810 ImageMate SDDR-75 +product SANDISK SDCZ2_128 0x7100 Cruzer Mini 128MB product SANDISK SDCZ2_256 0x7104 Cruzer Mini 256MB product SANDISK SDCZ4_128 0x7112 Cruzer Micro 128MB product SANDISK SDCZ4_256 0x7113 Cruzer Micro 256MB ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r259676 - in head/sys/powerpc: include ofw powermac powerpc psim
Author: jhibbits Date: Sat Dec 21 04:31:54 2013 New Revision: 259676 URL: http://svnweb.freebsd.org/changeset/base/259676 Log: Add suspend/resume state saving for OpenPIC on PowerMac. It's likely this can be used on the others (cpcht and psim), but that has not been tested. Modified: head/sys/powerpc/include/openpicreg.h head/sys/powerpc/include/openpicvar.h head/sys/powerpc/ofw/openpic_ofw.c head/sys/powerpc/powermac/cpcht.c head/sys/powerpc/powerpc/openpic.c head/sys/powerpc/psim/openpic_iobus.c Modified: head/sys/powerpc/include/openpicreg.h == --- head/sys/powerpc/include/openpicreg.h Sat Dec 21 03:05:13 2013 (r259675) +++ head/sys/powerpc/include/openpicreg.h Sat Dec 21 04:31:54 2013 (r259676) @@ -99,6 +99,7 @@ */ /* interrupt vector/priority reg */ +#define OPENPIC_SRC_VECTOR_COUNT 64 #ifndef OPENPIC_SRC_VECTOR #define OPENPIC_SRC_VECTOR(irq)(0x1 + (irq) * 0x20) #endif Modified: head/sys/powerpc/include/openpicvar.h == --- head/sys/powerpc/include/openpicvar.h Sat Dec 21 03:05:13 2013 (r259675) +++ head/sys/powerpc/include/openpicvar.h Sat Dec 21 04:31:54 2013 (r259676) @@ -32,6 +32,14 @@ #define OPENPIC_IRQMAX 256 /* h/w allows more */ +/* Names match the macros in openpicreg.h. */ +struct openpic_timer { + uint32_ttcnt; + uint32_ttbase; + uint32_ttvec; + uint32_ttdst; +}; + struct openpic_softc { device_tsc_dev; struct resource *sc_memr; @@ -45,6 +53,14 @@ struct openpic_softc { u_int sc_ncpu; u_int sc_nirq; int sc_psim; + + /* Saved states. */ + uint32_tsc_saved_config; + uint32_tsc_saved_ipis[4]; + uint32_tsc_saved_prios[4]; + struct openpic_timersc_saved_timers[OPENPIC_TIMERS]; + uint32_tsc_saved_vectors[OPENPIC_SRC_VECTOR_COUNT]; + }; extern devclass_t openpic_devclass; @@ -66,4 +82,7 @@ void openpic_ipi(device_t, u_int); void openpic_mask(device_t, u_int); void openpic_unmask(device_t, u_int); +intopenpic_suspend(device_t dev); +intopenpic_resume(device_t dev); + #endif /* _POWERPC_OPENPICVAR_H_ */ Modified: head/sys/powerpc/ofw/openpic_ofw.c == --- head/sys/powerpc/ofw/openpic_ofw.c Sat Dec 21 03:05:13 2013 (r259675) +++ head/sys/powerpc/ofw/openpic_ofw.c Sat Dec 21 04:31:54 2013 (r259676) @@ -51,6 +51,7 @@ __FBSDID("$FreeBSD$"); #include +#include #include #include "pic_if.h" @@ -68,6 +69,8 @@ static device_method_t openpic_ofw_meth /* Device interface */ DEVMETHOD(device_probe, openpic_ofw_probe), DEVMETHOD(device_attach,openpic_ofw_attach), + DEVMETHOD(device_suspend, openpic_suspend), + DEVMETHOD(device_resume,openpic_resume), /* PIC interface */ DEVMETHOD(pic_bind, openpic_bind), Modified: head/sys/powerpc/powermac/cpcht.c == --- head/sys/powerpc/powermac/cpcht.c Sat Dec 21 03:05:13 2013 (r259675) +++ head/sys/powerpc/powermac/cpcht.c Sat Dec 21 04:31:54 2013 (r259676) @@ -44,6 +44,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: head/sys/powerpc/powerpc/openpic.c == --- head/sys/powerpc/powerpc/openpic.c Sat Dec 21 03:05:13 2013 (r259675) +++ head/sys/powerpc/powerpc/openpic.c Sat Dec 21 04:31:54 2013 (r259676) @@ -380,3 +380,64 @@ openpic_unmask(device_t dev, u_int irq) openpic_write(sc, OPENPIC_IPI_VECTOR(0), x); } } + +int +openpic_suspend(device_t dev) +{ + struct openpic_softc *sc; + int i; + + sc = device_get_softc(dev); + + sc->sc_saved_config = bus_read_4(sc->sc_memr, OPENPIC_CONFIG); + for (i = 0; i < 4; i++) { + sc->sc_saved_ipis[i] = bus_read_4(sc->sc_memr, OPENPIC_IPI_VECTOR(i)); + } + + for (i = 0; i < 4; i++) { + sc->sc_saved_prios[i] = bus_read_4(sc->sc_memr, OPENPIC_PCPU_TPR(i)); + } + + for (i = 0; i < OPENPIC_TIMERS; i++) { + sc->sc_saved_timers[i].tcnt = bus_read_4(sc->sc_memr, OPENPIC_TCNT(i)); + sc->sc_saved_timers[i].tbase = bus_read_4(sc->sc_memr, OPENPIC_TBASE(i)); + sc->sc_saved_timers[i].tvec = bus_read_4(sc->sc_memr, OPENPIC_TVEC(i)); + sc->sc_saved_timers[i].tdst = bus_read_4(sc->sc_memr, OPENPIC_TDST(i)); +
Re: svn commit: r259659 - in head/sys: nfs rpc
On Fri, Dec 20, 2013 at 05:39:07PM +, Alexander Motin wrote: > Author: mav > Date: Fri Dec 20 17:39:07 2013 > New Revision: 259659 > URL: http://svnweb.freebsd.org/changeset/base/259659 > > Log: > Remove several linear list traversals per request from RPC server code. > > Do not insert active ports into pool->sp_active list if they are success- > fully assigned to some thread. This makes that list include only ports that > really require attention, and so traversal can be reduced to simple taking > the first one. > > Remove idle thread from pool->sp_idlethreads list when assigning some > work (port of requests) to it. That again makes possible to replace list > traversals with simple taking the first element. > > Modified: > head/sys/nfs/nfs_fha.c > head/sys/rpc/svc.c > head/sys/rpc/svc.h FYI. cc -c -O -pipe -march=core2 -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -Wno-error-tautological-compare -Wno-error-empty-body -Wno-error-parentheses-equality -nostdinc -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -mno-aes -mno-avx -mno-mmx -mno-sse -msoft-float -ffreestanding -fstack-protector -Werror /usr/src/sys/rpc/svc.c /usr/src/sys/rpc/svc.c:296:20: error: no member named 'xp_mlock' in 'struct __rpc_svcxprt'; did you mean 'xp_lock'? mtx_assert(&xprt->xp_mlock, MA_OWNED); ^ /usr/src/sys/sys/mutex.h:379:15: note: expanded from macro 'mtx_assert' mtx_assert_((m), (what), __FILE__, __LINE__) ^ /usr/src/sys/sys/mutex.h:359:15: note: expanded from macro 'mtx_assert_' _mtx_assert((m), (what), (file), (line)) ^ /usr/src/sys/sys/mutex.h:158:17: note: expanded from macro '_mtx_assert' __mtx_assert(&(m)->mtx_lock, w, f, l) ^ /usr/src/sys/rpc/svc.h:149:12: note: 'xp_lock' declared here struct sx xp_lock; ^ /usr/src/sys/rpc/svc.c:296:2: error: no member named 'mtx_lock' in 'struct sx'; did you mean 'sx_lock'? mtx_assert(&xprt->xp_mlock, MA_OWNED); ^ /usr/src/sys/sys/mutex.h:379:2: note: expanded from macro 'mtx_assert' mtx_assert_((m), (what), __FILE__, __LINE__) ^ /usr/src/sys/sys/mutex.h:359:2: note: expanded from macro 'mtx_assert_' _mtx_assert((m), (what), (file), (line)) ^ /usr/src/sys/sys/mutex.h:158:21: note: expanded from macro '_mtx_assert' __mtx_assert(&(m)->mtx_lock, w, f, l) ^ /usr/src/sys/sys/_sx.h:39:21: note: 'sx_lock' declared here volatile uintptr_t sx_lock; -- steve ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"