svn commit: r303023 - in head/sys: conf dev/hyperv/vmbus modules/hyperv/vmbus

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Tue Jul 19 07:51:22 2016
New Revision: 303023
URL: https://svnweb.freebsd.org/changeset/base/303023

Log:
  hyperv/vmbus: Rename laundered vmbus channel code
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7232

Added:
  head/sys/dev/hyperv/vmbus/vmbus_chan.c
 - copied unchanged from r303022, head/sys/dev/hyperv/vmbus/hv_channel.c
Deleted:
  head/sys/dev/hyperv/vmbus/hv_channel.c
Modified:
  head/sys/conf/files.amd64
  head/sys/conf/files.i386
  head/sys/modules/hyperv/vmbus/Makefile

Modified: head/sys/conf/files.amd64
==
--- head/sys/conf/files.amd64   Tue Jul 19 06:04:44 2016(r303022)
+++ head/sys/conf/files.amd64   Tue Jul 19 07:51:22 2016(r303023)
@@ -270,11 +270,11 @@ dev/hyperv/utilities/hv_kvp.c 
optiona
 dev/hyperv/utilities/hv_shutdown.c optionalhyperv
 dev/hyperv/utilities/hv_timesync.c optionalhyperv
 dev/hyperv/utilities/hv_util.c optionalhyperv
-dev/hyperv/vmbus/hv_channel.c  optionalhyperv
 dev/hyperv/vmbus/hv_ring_buffer.c  optionalhyperv
 dev/hyperv/vmbus/hyperv.c  optionalhyperv
 dev/hyperv/vmbus/hyperv_busdma.c   optionalhyperv
 dev/hyperv/vmbus/vmbus.c   optionalhyperv
+dev/hyperv/vmbus/vmbus_chan.c  optionalhyperv
 dev/hyperv/vmbus/vmbus_et.coptionalhyperv
 dev/hyperv/vmbus/vmbus_if.moptionalhyperv
 dev/hyperv/vmbus/amd64/hyperv_machdep.coptional
hyperv

Modified: head/sys/conf/files.i386
==
--- head/sys/conf/files.i386Tue Jul 19 06:04:44 2016(r303022)
+++ head/sys/conf/files.i386Tue Jul 19 07:51:22 2016(r303023)
@@ -246,11 +246,11 @@ dev/hyperv/utilities/hv_kvp.c 
optiona
 dev/hyperv/utilities/hv_shutdown.c optionalhyperv
 dev/hyperv/utilities/hv_timesync.c optionalhyperv
 dev/hyperv/utilities/hv_util.c optionalhyperv
-dev/hyperv/vmbus/hv_channel.c  optionalhyperv
 dev/hyperv/vmbus/hv_ring_buffer.c  optionalhyperv
 dev/hyperv/vmbus/hyperv.c  optionalhyperv
 dev/hyperv/vmbus/hyperv_busdma.c   optionalhyperv
 dev/hyperv/vmbus/vmbus.c   optionalhyperv
+dev/hyperv/vmbus/vmbus_chan.c  optionalhyperv
 dev/hyperv/vmbus/vmbus_et.coptionalhyperv
 dev/hyperv/vmbus/vmbus_if.moptionalhyperv
 dev/hyperv/vmbus/i386/hyperv_machdep.c optionalhyperv

Copied: head/sys/dev/hyperv/vmbus/vmbus_chan.c (from r303022, 
head/sys/dev/hyperv/vmbus/hv_channel.c)
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/dev/hyperv/vmbus/vmbus_chan.c  Tue Jul 19 07:51:22 2016
(r303023, copy of r303022, head/sys/dev/hyperv/vmbus/hv_channel.c)
@@ -0,0 +1,1380 @@
+/*-
+ * Copyright (c) 2009-2012,2016 Microsoft Corp.
+ * Copyright (c) 2012 NetApp Inc.
+ * Copyright (c) 2012 Citrix Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice unmodified, this list of conditions, and the following
+ *disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, 

svn commit: r303024 - head/sys/netinet

2016-07-19 Thread Michael Tuexen
Author: tuexen
Date: Tue Jul 19 09:48:08 2016
New Revision: 303024
URL: https://svnweb.freebsd.org/changeset/base/303024

Log:
  netstat and sockstat expect the IPv6 link local addresses to
  have an embedded scope. So don't recover.
  
  MFC after:3 days

Modified:
  head/sys/netinet/sctp_sysctl.c

Modified: head/sys/netinet/sctp_sysctl.c
==
--- head/sys/netinet/sctp_sysctl.c  Tue Jul 19 07:51:22 2016
(r303023)
+++ head/sys/netinet/sctp_sysctl.c  Tue Jul 19 09:48:08 2016
(r303024)
@@ -279,15 +279,6 @@ sctp_sysctl_copy_out_local_addresses(str
if 
(IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
if (local_scope == 0)
continue;
-   if (sin6->sin6_scope_id 
== 0) {
-   /*
-* bad link
-* local
-* address
-*/
-   if 
(sa6_recoverscope(sin6) != 0)
-   
continue;
-   }
}
if ((site_scope == 0) && 
(IN6_IS_ADDR_SITELOCAL(&sin6->sin6_addr)))
continue;
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303025 - head/sys/netinet

2016-07-19 Thread Michael Tuexen
Author: tuexen
Date: Tue Jul 19 11:16:44 2016
New Revision: 303025
URL: https://svnweb.freebsd.org/changeset/base/303025

Log:
  Use correct order of conditions to avoid NULL deref.
  
  MFC after:3 days
  X-MFC with:   r302935

Modified:
  head/sys/netinet/sctp_indata.c

Modified: head/sys/netinet/sctp_indata.c
==
--- head/sys/netinet/sctp_indata.c  Tue Jul 19 09:48:08 2016
(r303024)
+++ head/sys/netinet/sctp_indata.c  Tue Jul 19 11:16:44 2016
(r303025)
@@ -831,7 +831,7 @@ restart:
SCTP_READ_LOCK_NOT_HELD, 
SCTP_SO_NOT_LOCKED);
}
sctp_wakeup_the_read_socket(stcb->sctp_ep, 
stcb, SCTP_SO_NOT_LOCKED);
-   if (!TAILQ_EMPTY(&nc->reasm) && 
(nc->first_frag_seen)) {
+   if ((nc->first_frag_seen) && 
!TAILQ_EMPTY(&nc->reasm)) {
/*
 * Switch to the new guy and
 * continue
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys

2016-07-19 Thread Michal Meloun
Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a):
Hi Nathan,
I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so
please don’t expect quick response.

> Could you please describe what this change is in more detail?
Short description is appended.

> 
> It breaks a lot of encapsulations we have worked very hard to maintain,
> moves ARM code into MI parts of the kernel, and the OFW parts violate
> IEEE 1275 (the Open Firmware standard). In particular, there is no
> guarantee that the interrupts for a newbus (or OF) device are encoded in
> a property called "interrupts" (or, indeed, in any property at all) on
> that node and there are many, many device trees where that is not the
> case (e.g. ones with interrupt maps, as well as Apple hardware). By
> putting that knowledge into the OF root bus device, which we have tried
> to keep it out of, this enforces a standard that doesn't actually exist.
Imho, this patch doesn’t change anything in this area. Only handling of
“interrupts” property is changed, all other cases are unchanged (I
hope).  Also, INTRNG code is currently shared by ARM, ARM64 and MIPS.

> 
> I'm hesitant to ask for reversion on something that landed 6 weeks ago
> without me noticing, but this needs a lot more architectural work before
> any parts of the kernel should use it.
> -Nathan
I think that it’s too late.  This patch series consist of r301451
(https://reviews.freebsd.org/D6632),
r301453, r301539 and 301543.  And new GPIO interrupts are currently used
(by in tree drivers or in development trees).



The root of problem is that standard way of delivering interrupt
resource to consumer driver doesn’t works in OFW world.

So we have some fact:
- the format of interrupt property is dependent of interrupt
  controller and only interrupt controller can parse it.
- the interrupt property can have more data than just interrupt
  number.
- single interrupt controller must be able to handle multiple
  format of interrupt description.

In pre-patchset era, simplebus enumerates children and attempts to set
memory and interrupts to resource list for them. But the interrupt
controllers are not yet populated so nobody can parse interrupt
property. Moreover, in all cases (parsed or not), we cannot store
complete interrupt description into resource list.

The patch simply postpones reading of interrupt property to
bus_alloc_resource() (called by consumer driver) time.

Due to this, we can:
- parse  interrupt property. The interrupt driver must exist
  at this time.
- bus_alloc_resource() returns resource, so we can attach parsed
  interrupt data to it. By this, the resource itself can be used
  for delivering configuration data to subsequent call to
  bus_setup_intr() (or to all related  bus_() calls).


The patched code still accepts delivering of interrupts in resource list.

Michal

___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Re: svn commit: r302998 - head/sys/kern

2016-07-19 Thread Randall Stewart via svn-src-head
Gleb

Ok

I have now updated

https://reviews.freebsd.org/D7135

You can take this or not… I really don’t care either way… (you are welcome to
own the kern_timeout.c code I hate it) :-)

Basically when you went off and re-factored kern_timeout.c I had worked in 
parallel on fixing
the bugs you were seeing.. There were three distinct problems that I fixed… but 
then
you had refactored the stop() routine.. and I thought ok.. thats fine. I had 
actually thought about
doing something similar to what you did and was too chicken to poke that much 
at it.. it has
always had a nasty habit of biting back when you make a lot of changes :-D

I know my version has worked for quite some time in my testing so I brought it 
back.
Complete with its 3 return codes (I only recently switched to your version and 
thus
started having difficulties with leaks and crashes)….

You are welcome not to use this..  I know it works (it ran
on a number of machines at NF last night.. and we will of course continue 
testing
it as we finish our dev testing for the upcoming OCA software release).. For now
this is what will be going out into the OCA’s at least :-)

R

> On Jul 18, 2016, at 6:19 PM, Randall Stewart  wrote:
> 
> I have worked out a fix of this in Netflix code base (I have the same code 
> running there). I
> will get that tested tonight I will get the fixes in to restore the behavior.
> 
> I will setup a phabricator shortly.. most likely I will update the one I 
> already
> have on the one problem your earlier patch did not fix.
> 
> R
>> On Jul 18, 2016, at 5:44 PM, Randall Stewart  wrote:
>> 
>> Gleb:
>> 
>> This now leaks TCP-PCB’s since you have broken the return codes with all your
>> fixes that used to be in here.
>> 
>> It was
>> 
>> return 1 — You stopped the callout
>> return 0 — The callout could not be stopped
>> return -1 — The callout was not running.
>> 
>> The LLRef code that was crashing in in.c depended on this to know to free
>> the memory.. i.e. if was > 0 then they needed to free the memory.
>> 
>> TCP depends on a return 0 to indicate the async-drain function will be 
>> called back and
>> thus increments a refcnt and waits for the callback.
>> 
>> You now return 0 when no timer was active.. which makes the stack then wait
>> for the not forth coming async-drain call.
>> 
>> R
>>> On Jul 18, 2016, at 11:29 AM, Gleb Smirnoff  wrote:
>>> 
>>> Author: glebius
>>> Date: Mon Jul 18 09:29:08 2016
>>> New Revision: 302998
>>> URL: https://svnweb.freebsd.org/changeset/base/302998
>>> 
>>> Log:
>>> Revert the last commit. It must get more review and testing first.
>>> 
>>> Modified:
>>> head/sys/kern/kern_timeout.c
>>> 
>>> Modified: head/sys/kern/kern_timeout.c
>>> ==
>>> --- head/sys/kern/kern_timeout.cMon Jul 18 09:26:06 2016
>>> (r302997)
>>> +++ head/sys/kern/kern_timeout.cMon Jul 18 09:29:08 2016
>>> (r302998)
>>> @@ -1381,7 +1381,7 @@ again:
>>> CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p",
>>> c, c->c_func, c->c_arg);
>>> CC_UNLOCK(cc);
>>> -   return (-1);
>>> +   return (0);
>>> }
>>> 
>>> c->c_iflags &= ~CALLOUT_PENDING;
>>> 
>> 
>> 
>> Randall Stewart
>> r...@netflix.com
>> 803-317-4952
>> 
>> 
>> 
>> 
>> 
> 
> 
> Randall Stewart
> r...@netflix.com
> 803-317-4952
> 
> 
> 
> 
> 


Randall Stewart
r...@netflix.com
803-317-4952





___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Re: svn commit: r302998 - head/sys/kern

2016-07-19 Thread Glen Barber
On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote:
> Gleb
> 
> Ok
> 
> I have now updated
> 
> https://reviews.freebsd.org/D7135
> 
> You can take this or not… I really don’t care either way… (you are welcome to
> own the kern_timeout.c code I hate it) :-)
> 
> Basically when you went off and re-factored kern_timeout.c I had worked in 
> parallel on fixing
> the bugs you were seeing.. There were three distinct problems that I fixed… 
> but then
> you had refactored the stop() routine.. and I thought ok.. thats fine. I had 
> actually thought about
> doing something similar to what you did and was too chicken to poke that much 
> at it.. it has
> always had a nasty habit of biting back when you make a lot of changes :-D
> 
> I know my version has worked for quite some time in my testing so I brought 
> it back.
> Complete with its 3 return codes (I only recently switched to your version 
> and thus
> started having difficulties with leaks and crashes)….
> 
> You are welcome not to use this..  I know it works (it ran
> on a number of machines at NF last night.. and we will of course continue 
> testing
> it as we finish our dev testing for the upcoming OCA software release).. For 
> now
> this is what will be going out into the OCA’s at least :-)
> 

I'm honestly done with this topic, and at the point now where I'm
considering backing out all changes to callout(9) and related changes to
the state they were at in stable/10.

This changes the KBI, and if it needs to be done, it needs to happen
now.  We cannot wait for RC1 phase for this, and the amount of churn to
get things into a working state with the current implementation far
outweighs the benefit of the dangers.

Glen



signature.asc
Description: PGP signature


Re: svn commit: r302998 - head/sys/kern

2016-07-19 Thread Randall Stewart via svn-src-head
Glen:

My changes work.. I have them running in NF in  at least 1/2 dozen machines.

I am more than willing to commit them.. they actually are not much different 
than
whats in stable 10.. though I don’t know if the async-drain was MFC’d there.. it
needs to be in for TCP.. or else you will have yet another mess in that
respect (TCP depends on ASYNC-drain).

I can commit what I have.. if you like.. or not.. I really don’t care (I hate 
kern_timeout.c :-o)

R
> On Jul 19, 2016, at 2:25 PM, Glen Barber  wrote:
> 
> On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote:
>> Gleb
>> 
>> Ok
>> 
>> I have now updated
>> 
>> https://reviews.freebsd.org/D7135
>> 
>> You can take this or not… I really don’t care either way… (you are welcome to
>> own the kern_timeout.c code I hate it) :-)
>> 
>> Basically when you went off and re-factored kern_timeout.c I had worked in 
>> parallel on fixing
>> the bugs you were seeing.. There were three distinct problems that I fixed… 
>> but then
>> you had refactored the stop() routine.. and I thought ok.. thats fine. I had 
>> actually thought about
>> doing something similar to what you did and was too chicken to poke that 
>> much at it.. it has
>> always had a nasty habit of biting back when you make a lot of changes :-D
>> 
>> I know my version has worked for quite some time in my testing so I brought 
>> it back.
>> Complete with its 3 return codes (I only recently switched to your version 
>> and thus
>> started having difficulties with leaks and crashes)….
>> 
>> You are welcome not to use this..  I know it works (it ran
>> on a number of machines at NF last night.. and we will of course continue 
>> testing
>> it as we finish our dev testing for the upcoming OCA software release).. For 
>> now
>> this is what will be going out into the OCA’s at least :-)
>> 
> 
> I'm honestly done with this topic, and at the point now where I'm
> considering backing out all changes to callout(9) and related changes to
> the state they were at in stable/10.
> 
> This changes the KBI, and if it needs to be done, it needs to happen
> now.  We cannot wait for RC1 phase for this, and the amount of churn to
> get things into a working state with the current implementation far
> outweighs the benefit of the dangers.
> 
> Glen
> 


Randall Stewart
r...@netflix.com
803-317-4952





___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Re: svn commit: r302998 - head/sys/kern

2016-07-19 Thread Glen Barber
On Tue, Jul 19, 2016 at 03:46:54PM +0200, Randall Stewart wrote:
> Glen:
> 
> My changes work.. I have them running in NF in  at least 1/2 dozen machines.
> 

For how long?  What are the uptimes on these machines?

This is the blocker for 11.0-BETA2, and I don't want to see more
regressions being introduced at this point of the cycle.

Glen

> I am more than willing to commit them.. they actually are not much different 
> than
> whats in stable 10.. though I don’t know if the async-drain was MFC’d there.. 
> it
> needs to be in for TCP.. or else you will have yet another mess in that
> respect (TCP depends on ASYNC-drain).
> 
> I can commit what I have.. if you like.. or not.. I really don’t care (I hate 
> kern_timeout.c :-o)
> 
> R
> > On Jul 19, 2016, at 2:25 PM, Glen Barber  wrote:
> > 
> > On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote:
> >> Gleb
> >> 
> >> Ok
> >> 
> >> I have now updated
> >> 
> >> https://reviews.freebsd.org/D7135
> >> 
> >> You can take this or not… I really don’t care either way… (you are welcome 
> >> to
> >> own the kern_timeout.c code I hate it) :-)
> >> 
> >> Basically when you went off and re-factored kern_timeout.c I had worked in 
> >> parallel on fixing
> >> the bugs you were seeing.. There were three distinct problems that I 
> >> fixed… but then
> >> you had refactored the stop() routine.. and I thought ok.. thats fine. I 
> >> had actually thought about
> >> doing something similar to what you did and was too chicken to poke that 
> >> much at it.. it has
> >> always had a nasty habit of biting back when you make a lot of changes :-D
> >> 
> >> I know my version has worked for quite some time in my testing so I 
> >> brought it back.
> >> Complete with its 3 return codes (I only recently switched to your version 
> >> and thus
> >> started having difficulties with leaks and crashes)….
> >> 
> >> You are welcome not to use this..  I know it works (it ran
> >> on a number of machines at NF last night.. and we will of course continue 
> >> testing
> >> it as we finish our dev testing for the upcoming OCA software release).. 
> >> For now
> >> this is what will be going out into the OCA’s at least :-)
> >> 
> > 
> > I'm honestly done with this topic, and at the point now where I'm
> > considering backing out all changes to callout(9) and related changes to
> > the state they were at in stable/10.
> > 
> > This changes the KBI, and if it needs to be done, it needs to happen
> > now.  We cannot wait for RC1 phase for this, and the amount of churn to
> > get things into a working state with the current implementation far
> > outweighs the benefit of the dangers.
> > 
> > Glen
> > 
> 
> 
> Randall Stewart
> r...@netflix.com
> 803-317-4952
> 
> 
> 
> 
> 


signature.asc
Description: PGP signature


Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys

2016-07-19 Thread Nathan Whitehorn



On 07/19/16 04:13, Michal Meloun wrote:

Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a):
Hi Nathan,
I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so
please don’t expect quick response.


Could you please describe what this change is in more detail?

Short description is appended.


It breaks a lot of encapsulations we have worked very hard to maintain,
moves ARM code into MI parts of the kernel, and the OFW parts violate
IEEE 1275 (the Open Firmware standard). In particular, there is no
guarantee that the interrupts for a newbus (or OF) device are encoded in
a property called "interrupts" (or, indeed, in any property at all) on
that node and there are many, many device trees where that is not the
case (e.g. ones with interrupt maps, as well as Apple hardware). By
putting that knowledge into the OF root bus device, which we have tried
to keep it out of, this enforces a standard that doesn't actually exist.

Imho, this patch doesn’t change anything in this area. Only handling of
“interrupts” property is changed, all other cases are unchanged (I
hope).  Also, INTRNG code is currently shared by ARM, ARM64 and MIPS.


But "interrupts" isn't a generic part of OF. This makes it one, incorrectly.




I'm hesitant to ask for reversion on something that landed 6 weeks ago
without me noticing, but this needs a lot more architectural work before
any parts of the kernel should use it.
-Nathan

I think that it’s too late.  This patch series consist of r301451
(https://reviews.freebsd.org/D6632),
r301453, r301539 and 301543.  And new GPIO interrupts are currently used
(by in tree drivers or in development trees).


Well, then we need in-place rearchitecture.




The root of problem is that standard way of delivering interrupt
resource to consumer driver doesn’t works in OFW world.

So we have some fact:
- the format of interrupt property is dependent of interrupt
   controller and only interrupt controller can parse it.
- the interrupt property can have more data than just interrupt
   number.
- single interrupt controller must be able to handle multiple
   format of interrupt description.

In pre-patchset era, simplebus enumerates children and attempts to set
memory and interrupts to resource list for them. But the interrupt
controllers are not yet populated so nobody can parse interrupt
property. Moreover, in all cases (parsed or not), we cannot store
complete interrupt description into resource list.


We have done this for many years on PowerPC and sparc64 with delayed 
configuration of interrupts and a look-up table. This handles 
complicated bus configurations better than this code and requires no 
changes outside of a few MD files. That is why the (now partially 
duplicated) OFW_BUS_MAP_INTR() function exists. That one also has the 
benefit of still working when used in conjunction with, e.g., devices 
with an interrupt-map-mask property.




The patch simply postpones reading of interrupt property to
bus_alloc_resource() (called by consumer driver) time.

Due to this, we can:
- parse  interrupt property. The interrupt driver must exist
   at this time.


This only works with some types of interrupt properties, not all, and 
breaks if the interrupt driver hasn't attached yet (which it can't be 
guaranteed to -- some PPC systems have interrupt drivers that live on 
the PCI bus, for example).



- bus_alloc_resource() returns resource, so we can attach parsed
   interrupt data to it. By this, the resource itself can be used
   for delivering configuration data to subsequent call to
   bus_setup_intr() (or to all related  bus_() calls).


The patched code still accepts delivering of interrupts in resource list.

Michal



Given that other code depends on this, fixing it will likely require 
some complex work. I wish I had known about it when it went in.


There are three main problems:
1. It doesn't work for interrupts defined by other mechanisms (e.g. 
interrupt-map properties)
2. It partially duplicates the functionality of OFW_BUS_MAP_INTR(), but 
is both problematically more general and less flexible (it has 
requirements on timing of PIC attachment vs. driver resource allocation)
3. It is not fully transparent to end code. Since it happens at 
bus_alloc_resource() time, it is complicated to get the appropriate 
values for IRQs constructed by composite techniques (interrupt-map vs. 
interrupts vs. hand allocation vs. PCI routing, for example). It is much 
easier to do this correctly at bus attach time when the resource lists 
are made (how PPC does it).


(1) is easy to fix without API changes, but (2) and (3) are fundamental 
architectural problems that will bite us immediately down the road and 
cause a permanent schism between OF support on different platforms.


Let me describe how this is handled on PowerPC (Linux on PPC solves the 
problem the same way). When constructing a resource list, bus drivers 
that construct them from OF properties call ofw_bus_map_intr() with the 
interru

Re: svn commit: r302998 - head/sys/kern

2016-07-19 Thread Randall Stewart via svn-src-head
Well 

The code itself I had up on machines for probably about 2 months. But then
I switched over to Gleb’s changes here just recently .. which caused me all
kinds of fun :)

I had to go back into Mercurial to pull back my changes.. I have had the
resurrected changes running on my netflix machines for about 20 or so
hours generating about anywhere from 14Gbps to 32Gbps depending on the machine
type.

I plan on waiting until tomorrow to sync it down into the NF code base. 

Note that if you do decide instead to roll back to the 10.x kern_timeout.c you
will need to roll back a bunch of tcp changes as well that use the new
async_drain() interface.

I am game either way for you to proceed.. I will commit this current code
to head as long as I hear no objections (from Gleb or others)….

R

> On Jul 19, 2016, at 3:56 PM, Glen Barber  wrote:
> 
> On Tue, Jul 19, 2016 at 03:46:54PM +0200, Randall Stewart wrote:
>> Glen:
>> 
>> My changes work.. I have them running in NF in  at least 1/2 dozen machines.
>> 
> 
> For how long?  What are the uptimes on these machines?
> 
> This is the blocker for 11.0-BETA2, and I don't want to see more
> regressions being introduced at this point of the cycle.
> 
> Glen
> 
>> I am more than willing to commit them.. they actually are not much different 
>> than
>> whats in stable 10.. though I don’t know if the async-drain was MFC’d 
>> there.. it
>> needs to be in for TCP.. or else you will have yet another mess in that
>> respect (TCP depends on ASYNC-drain).
>> 
>> I can commit what I have.. if you like.. or not.. I really don’t care (I 
>> hate kern_timeout.c :-o)
>> 
>> R
>>> On Jul 19, 2016, at 2:25 PM, Glen Barber  wrote:
>>> 
>>> On Tue, Jul 19, 2016 at 01:43:16PM +0200, Randall Stewart wrote:
 Gleb
 
 Ok
 
 I have now updated
 
 https://reviews.freebsd.org/D7135
 
 You can take this or not… I really don’t care either way… (you are welcome 
 to
 own the kern_timeout.c code I hate it) :-)
 
 Basically when you went off and re-factored kern_timeout.c I had worked in 
 parallel on fixing
 the bugs you were seeing.. There were three distinct problems that I 
 fixed… but then
 you had refactored the stop() routine.. and I thought ok.. thats fine. I 
 had actually thought about
 doing something similar to what you did and was too chicken to poke that 
 much at it.. it has
 always had a nasty habit of biting back when you make a lot of changes :-D
 
 I know my version has worked for quite some time in my testing so I 
 brought it back.
 Complete with its 3 return codes (I only recently switched to your version 
 and thus
 started having difficulties with leaks and crashes)….
 
 You are welcome not to use this..  I know it works (it ran
 on a number of machines at NF last night.. and we will of course continue 
 testing
 it as we finish our dev testing for the upcoming OCA software release).. 
 For now
 this is what will be going out into the OCA’s at least :-)
 
>>> 
>>> I'm honestly done with this topic, and at the point now where I'm
>>> considering backing out all changes to callout(9) and related changes to
>>> the state they were at in stable/10.
>>> 
>>> This changes the KBI, and if it needs to be done, it needs to happen
>>> now.  We cannot wait for RC1 phase for this, and the amount of churn to
>>> get things into a working state with the current implementation far
>>> outweighs the benefit of the dangers.
>>> 
>>> Glen
>>> 
>> 
>> 
>> Randall Stewart
>> r...@netflix.com
>> 803-317-4952
>> 
>> 
>> 
>> 
>> 


Randall Stewart
r...@netflix.com
803-317-4952





___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Re: svn commit: r301453 - in head/sys: arm/arm arm64/arm64 dev/fdt dev/gpio dev/iicbus dev/ofw dev/pci dev/vnic kern mips/mips sys

2016-07-19 Thread Nathan Whitehorn

On 07/19/16 04:13, Michal Meloun wrote:

Dne 19.07.2016 v 2:11 Nathan Whitehorn napsal(a):
Hi Nathan,
I’m afraid that skra is on vacation, for next 2 weeks (at minimum), so
please don’t expect quick response.


Could you please describe what this change is in more detail?

Short description is appended.


It breaks a lot of encapsulations we have worked very hard to maintain,
moves ARM code into MI parts of the kernel, and the OFW parts violate
IEEE 1275 (the Open Firmware standard). In particular, there is no
guarantee that the interrupts for a newbus (or OF) device are encoded in
a property called "interrupts" (or, indeed, in any property at all) on
that node and there are many, many device trees where that is not the
case (e.g. ones with interrupt maps, as well as Apple hardware). By
putting that knowledge into the OF root bus device, which we have tried
to keep it out of, this enforces a standard that doesn't actually exist.

Imho, this patch doesn’t change anything in this area. Only handling of
“interrupts” property is changed, all other cases are unchanged (I
hope).  Also, INTRNG code is currently shared by ARM, ARM64 and MIPS.


I'm hesitant to ask for reversion on something that landed 6 weeks ago
without me noticing, but this needs a lot more architectural work before
any parts of the kernel should use it.
-Nathan

I think that it’s too late.  This patch series consist of r301451
(https://reviews.freebsd.org/D6632),
r301453, r301539 and 301543.  And new GPIO interrupts are currently used
(by in tree drivers or in development trees).




[See other email for information for detail on why I am concerned about 
this code]


Looking through those commits and the current state of HEAD, it turns 
out bus_map_intr() is not yet used anywhere in the tree; there is just a 
stub implementation in dev/ofw/ofwbus.c and a prototype that is never 
called in sys/bus.h. As such, I would in fact like to ask for the 
reversion of both r301451 and r301453 at this point, especially from the 
stable/11 branch. Adding a new API is something we can do to stable/11 
at any point; removing one, or changing one, is something we cannot do.


After that, I am more than happy to help move ARM code to use the 
existing dev/ofw scheme for handling interrupt metadata.

-Nathan
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

svn commit: r303026 - head/usr.sbin/acpi/acpidump

2016-07-19 Thread Andrew Turner
Author: andrew
Date: Tue Jul 19 16:02:07 2016
New Revision: 303026
URL: https://svnweb.freebsd.org/changeset/base/303026

Log:
  Add missing flags from acpidump. These are defined in the header, but not
  printed. The HW_REDUCED flag is useful as it should be set on arm64 to
  comply with the ARM Server Base Boot Requirements.
  
  Obtained from:ABT Systems Ltd
  MFC after:1 month
  Sponsored by: The FreeBSD Foundation

Modified:
  head/usr.sbin/acpi/acpidump/acpi.c

Modified: head/usr.sbin/acpi/acpidump/acpi.c
==
--- head/usr.sbin/acpi/acpidump/acpi.c  Tue Jul 19 11:16:44 2016
(r303025)
+++ head/usr.sbin/acpi/acpidump/acpi.c  Tue Jul 19 16:02:07 2016
(r303026)
@@ -1177,6 +1177,7 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp)
PRINTFLAG(fadt->BootFlags, NO_VGA);
PRINTFLAG(fadt->BootFlags, NO_MSI);
PRINTFLAG(fadt->BootFlags, NO_ASPM);
+   PRINTFLAG(fadt->BootFlags, NO_CMOS_RTC);
PRINTFLAG_END();
 
printf("\tFlags=");
@@ -1200,6 +1201,8 @@ acpi_print_fadt(ACPI_TABLE_HEADER *sdp)
PRINTFLAG(fadt->Flags, REMOTE_POWER_ON);
PRINTFLAG(fadt->Flags, APIC_CLUSTER);
PRINTFLAG(fadt->Flags, APIC_PHYSICAL);
+   PRINTFLAG(fadt->Flags, HW_REDUCED);
+   PRINTFLAG(fadt->Flags, LOW_POWER_S0);
PRINTFLAG_END();
 
 #undef PRINTFLAG
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303028 - head/share/misc

2016-07-19 Thread Glen Barber
Author: gjb
Date: Tue Jul 19 16:34:49 2016
New Revision: 303028
URL: https://svnweb.freebsd.org/changeset/base/303028

Log:
  Belatedly add FreeBSD 11.0 and 12.0 to the family tree file.
  
  Submitted by: des (a while back)
  Sponsored by: The FreeBSD Foundation

Modified:
  head/share/misc/bsd-family-tree

Modified: head/share/misc/bsd-family-tree
==
--- head/share/misc/bsd-family-tree Tue Jul 19 16:22:50 2016
(r303027)
+++ head/share/misc/bsd-family-tree Tue Jul 19 16:34:49 2016
(r303028)
@@ -339,7 +339,11 @@ FreeBSD 5.2   |  |  
  |  FreeBSD   |  |OpenBSD 5.9  |
  |   10.3 |  | |   |
  ||  | |   |
-FreeBSD 11 -current   |  NetBSD -current  OpenBSD -current DragonFly 
-current
+ *--FreeBSD   |  | |   |
+ |   11.0 |  | |   |
+ ||  | |   |
+ ||  | |   |
+FreeBSD 12 -current   |  NetBSD -current  OpenBSD -current DragonFly 
-current
  ||  | |   |
  vv  v v   v
 
@@ -687,6 +691,8 @@ OpenBSD 5.8 2015-10-18 [OBD]
 DragonFly 4.4.12015-12-07 [DFB]
 OpenBSD 5.92016-03-29 [OBD]
 FreeBSD 10.3   2016-04-04 [FBD]
+FreeBSD 11.0   2016-06-08 [FBD]
+FreeBSD 12.0   2016-06-09 [FBD]
 
 Bibliography
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303028 - head/share/misc

2016-07-19 Thread Maxim Konovalov
On Tue, 19 Jul 2016, 16:34-, Glen Barber wrote:

> Author: gjb
> Date: Tue Jul 19 16:34:49 2016
> New Revision: 303028
> URL: https://svnweb.freebsd.org/changeset/base/303028
>
> Log:
>   Belatedly add FreeBSD 11.0 and 12.0 to the family tree file.
>
>   Submitted by:   des (a while back)
>   Sponsored by:   The FreeBSD Foundation
>
The file lists releases not branches.  I don't think we have 11.0 or
12.0 released.

-- 
Maxim Konovalov
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303028 - head/share/misc

2016-07-19 Thread Glen Barber
On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote:
> On Tue, 19 Jul 2016, 16:34-, Glen Barber wrote:
> 
> > Author: gjb
> > Date: Tue Jul 19 16:34:49 2016
> > New Revision: 303028
> > URL: https://svnweb.freebsd.org/changeset/base/303028
> >
> > Log:
> >   Belatedly add FreeBSD 11.0 and 12.0 to the family tree file.
> >
> >   Submitted by: des (a while back)
> >   Sponsored by: The FreeBSD Foundation
> >
> The file lists releases not branches.  I don't think we have 11.0 or
> 12.0 released.
> 

Honestly, I am not sure about anything in this file.  :)

There was an entry for 11-current though.  Is the dated-part of the
commit the problem, or is the entire change wrong?  If the latter, I'll
look at it again (or even revert it, and let someone who knows how this
file is supposed to be updated handle it).

Glen



signature.asc
Description: PGP signature


Re: svn commit: r303028 - head/share/misc

2016-07-19 Thread Maxim Konovalov
On Tue, 19 Jul 2016, 16:46-, Glen Barber wrote:

> On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote:
> > On Tue, 19 Jul 2016, 16:34-, Glen Barber wrote:
> >
> > > Author: gjb
> > > Date: Tue Jul 19 16:34:49 2016
> > > New Revision: 303028
> > > URL: https://svnweb.freebsd.org/changeset/base/303028
> > >
> > > Log:
> > >   Belatedly add FreeBSD 11.0 and 12.0 to the family tree file.
> > >
> > >   Submitted by:   des (a while back)
> > >   Sponsored by:   The FreeBSD Foundation
> > >
> > The file lists releases not branches.  I don't think we have 11.0 or
> > 12.0 released.
> >
>
> Honestly, I am not sure about anything in this file.  :)
>
> There was an entry for 11-current though.  Is the dated-part of the
> commit the problem, or is the entire change wrong?  If the latter, I'll
> look at it again (or even revert it, and let someone who knows how this
> file is supposed to be updated handle it).
>
Just dates are incorrect.

-- 
Maxim Konovalov
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303028 - head/share/misc

2016-07-19 Thread Glen Barber
On Tue, Jul 19, 2016 at 07:51:34PM +0300, Maxim Konovalov wrote:
> On Tue, 19 Jul 2016, 16:46-, Glen Barber wrote:
> 
> > On Tue, Jul 19, 2016 at 07:42:03PM +0300, Maxim Konovalov wrote:
> > > On Tue, 19 Jul 2016, 16:34-, Glen Barber wrote:
> > >
> > > > Author: gjb
> > > > Date: Tue Jul 19 16:34:49 2016
> > > > New Revision: 303028
> > > > URL: https://svnweb.freebsd.org/changeset/base/303028
> > > >
> > > > Log:
> > > >   Belatedly add FreeBSD 11.0 and 12.0 to the family tree file.
> > > >
> > > >   Submitted by: des (a while back)
> > > >   Sponsored by: The FreeBSD Foundation
> > > >
> > > The file lists releases not branches.  I don't think we have 11.0 or
> > > 12.0 released.
> > >
> >
> > Honestly, I am not sure about anything in this file.  :)
> >
> > There was an entry for 11-current though.  Is the dated-part of the
> > commit the problem, or is the entire change wrong?  If the latter, I'll
> > look at it again (or even revert it, and let someone who knows how this
> > file is supposed to be updated handle it).
> >
> Just dates are incorrect.
> 

Ok, I'll remove them now.  Thank you for reporting this.

Glen



signature.asc
Description: PGP signature


svn commit: r303030 - head/share/misc

2016-07-19 Thread Glen Barber
Author: gjb
Date: Tue Jul 19 16:55:16 2016
New Revision: 303030
URL: https://svnweb.freebsd.org/changeset/base/303030

Log:
  Fix the previous commit to the family tree file.  It is too early
  to list 11.0, and we do not list -CURRENT here.
  
  Submitted by: maxim
  Sponsored by: The FreeBSD Foundation

Modified:
  head/share/misc/bsd-family-tree

Modified: head/share/misc/bsd-family-tree
==
--- head/share/misc/bsd-family-tree Tue Jul 19 16:46:27 2016
(r303029)
+++ head/share/misc/bsd-family-tree Tue Jul 19 16:55:16 2016
(r303030)
@@ -691,8 +691,6 @@ OpenBSD 5.8 2015-10-18 [OBD]
 DragonFly 4.4.12015-12-07 [DFB]
 OpenBSD 5.92016-03-29 [OBD]
 FreeBSD 10.3   2016-04-04 [FBD]
-FreeBSD 11.0   2016-06-08 [FBD]
-FreeBSD 12.0   2016-06-09 [FBD]
 
 Bibliography
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303031 - head/contrib/llvm/tools/clang/lib/Driver

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 17:15:07 2016
New Revision: 303031
URL: https://svnweb.freebsd.org/changeset/base/303031

Log:
  clang++: Always use --eh-frame-hdr on FreeBSD, even for -static
  
  FreeBSD uses LLVM's libunwind on FreeBSD/arm64 today (and we expect to
  use it more widely in the future) and it requires the EH frame segment
  in static binaries.
  
  Reviewed by:  dim
  Obtained from:Clang commit r266123
  MFC after:3 days
  Relnotes: yes
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D7250

Modified:
  head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp

Modified: head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp
==
--- head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp  Tue Jul 19 16:55:16 
2016(r303030)
+++ head/contrib/llvm/tools/clang/lib/Driver/Tools.cpp  Tue Jul 19 17:15:07 
2016(r303031)
@@ -7922,12 +7922,12 @@ void freebsd::Linker::ConstructJob(Compi
   if (IsPIE)
 CmdArgs.push_back("-pie");
 
+  CmdArgs.push_back("--eh-frame-hdr");
   if (Args.hasArg(options::OPT_static)) {
 CmdArgs.push_back("-Bstatic");
   } else {
 if (Args.hasArg(options::OPT_rdynamic))
   CmdArgs.push_back("-export-dynamic");
-CmdArgs.push_back("--eh-frame-hdr");
 if (Args.hasArg(options::OPT_shared)) {
   CmdArgs.push_back("-Bshareable");
 } else {
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303032 - head/sys/dev/ixgbe

2016-07-19 Thread Sean Bruno
Author: sbruno
Date: Tue Jul 19 17:31:48 2016
New Revision: 303032
URL: https://svnweb.freebsd.org/changeset/base/303032

Log:
  Fixup DA cable detection routines to not set the cable type to
  unknown if they do not match one of two cable types.
  
  PR:   150249
  Submitted by: bor...@sarenet.es
  Reviewed by:  erj
  MFC after:3 days

Modified:
  head/sys/dev/ixgbe/ixgbe_phy.c

Modified: head/sys/dev/ixgbe/ixgbe_phy.c
==
--- head/sys/dev/ixgbe/ixgbe_phy.c  Tue Jul 19 17:15:07 2016
(r303031)
+++ head/sys/dev/ixgbe/ixgbe_phy.c  Tue Jul 19 17:31:48 2016
(r303032)
@@ -1534,21 +1534,18 @@ s32 ixgbe_identify_sfp_module_generic(st
hw->phy.type = ixgbe_phy_sfp_intel;
break;
default:
-   if (cable_tech & IXGBE_SFF_DA_PASSIVE_CABLE)
-   hw->phy.type =
-ixgbe_phy_sfp_passive_unknown;
-   else if (cable_tech & IXGBE_SFF_DA_ACTIVE_CABLE)
-   hw->phy.type =
-   ixgbe_phy_sfp_active_unknown;
-   else
-   hw->phy.type = ixgbe_phy_sfp_unknown;
+   hw->phy.type = ixgbe_phy_sfp_unknown;
break;
}
}
 
/* Allow any DA cable vendor */
if (cable_tech & (IXGBE_SFF_DA_PASSIVE_CABLE |
-   IXGBE_SFF_DA_ACTIVE_CABLE)) {
+   IXGBE_SFF_DA_ACTIVE_CABLE)) {
+   if (cable_tech & IXGBE_SFF_DA_PASSIVE_CABLE)
+   hw->phy.type = ixgbe_phy_sfp_passive_unknown;
+   else if (cable_tech & IXGBE_SFF_DA_ACTIVE_CABLE)
+   hw->phy.type = ixgbe_phy_sfp_active_unknown;
status = IXGBE_SUCCESS;
goto out;
}
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 17:46:09 2016
New Revision: 303033
URL: https://svnweb.freebsd.org/changeset/base/303033

Log:
  add an arch.7 man page with architecture-specific details
  
  Based on details collected on the wiki, at
  https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics
  Further details to be added over time.
  
  Sponsored by: The FreeBSD Foundation
  Differential Revision:https://reviews.freebsd.org/D7096

Added:
  head/share/man/man7/arch.7   (contents, props changed)
Modified:
  head/share/man/man7/Makefile

Modified: head/share/man/man7/Makefile
==
--- head/share/man/man7/MakefileTue Jul 19 17:31:48 2016
(r303032)
+++ head/share/man/man7/MakefileTue Jul 19 17:46:09 2016
(r303033)
@@ -7,6 +7,7 @@ PACKAGE=runtime-manuals
 
 #MISSING: eqnchar.7 ms.7 term.7
 MAN=   adding_user.7 \
+   arch.7 \
ascii.7 \
bsd.snmpmod.mk.7 \
build.7 \

Added: head/share/man/man7/arch.7
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man7/arch.7  Tue Jul 19 17:46:09 2016(r303033)
@@ -0,0 +1,171 @@
+.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved.
+.\"
+.\" This documentation was created by Ed Maste under sponsorship of
+.\" The FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"notice, this list of conditions and the following disclaimer in the
+.\"documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 19, 2016
+.Dt ARCH 7
+.Os
+.Sh NAME
+.Nm arch
+.Nd Architecture-specific details
+.Sh DESCRIPTION
+Differences between CPU architectures and platforms supported by
+.Fx .
+.Pp
+.Ss Type sizes
+On all supported architectures,
+.Bl -column -offset -indent "long long" "Size"
+.It Sy Type Ta Sy Size
+.It short Ta 2
+.It int Ta 4
+.It long Ta sizeof(void*)
+.It long long Ta 8
+.It float Ta 4
+.It double Ta 8
+.El
+.Bl -column -offset indent ".Sy Architecture" ".Sy sizeof(void *)" ".Sy 
"sizeof(long double)"
+.It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double)
+.It amd64   Ta 8 Ta 16
+.It arm Ta 4 Ta  8
+.It armeb   Ta 4 Ta  8
+.It armv6   Ta 4 Ta  8
+.It arm64   Ta 8 Ta 16
+.It i386Ta 4 Ta 12
+.It mipsTa 4 Ta  8
+.It mipsel  Ta 4 Ta  8
+.It mipsn32 Ta 4 Ta  8
+.It mips64  Ta 8 Ta  8
+.It mips64elTa 8 Ta  8
+.It powerpc Ta 4 Ta  8
+.It powerpc64   Ta 8 Ta  8
+.It riscv   Ta 8 Ta
+.It sparc64 Ta 8 Ta 16
+.El
+.Ss Endianness and Char Signedness
+.Bl -column -offset indent ".Sy Architecture" ".Sy Endianness" ".Sy "char 
Signedness"
+.It Sy Architecture Ta Sy Endianness Ta Sy char Signedness
+.It amd64   Ta little Ta   signed
+.It arm Ta little Ta unsigned
+.It armeb   Ta bigTa unsigned
+.It armv6   Ta little Ta unsigned
+.It arm64   Ta little Ta unsigned
+.It i386Ta little Ta   signed
+.It mipsTa little Ta   signed
+.It mipsel  Ta bigTa   signed
+.It mipsn32 Ta little Ta   signed
+.It mips64  Ta little Ta   signed
+.It mips64elTa little Ta   signed
+.It powerpc Ta bigTa unsigned
+.It powerpc64   Ta bigTa unsigned
+.It riscv   Ta little Ta   signed
+.It sparc64 Ta bigTa   signed
+.El
+.Ss Page Size
+.Bl -column -offset indent ".Sy Architecture" ".Sy Page Sizes"
+.It Sy Architecture Ta Sy Page Sizes
+.It amd64   Ta 4K, 2M, 1G
+.It arm Ta 4K
+.It armeb   Ta 4K
+.It armv6   Ta 4K
+.It arm64   Ta 4K, 2M, 1G
+.It i386Ta 4K, 2M (PAE), 4M
+.It mipsTa 4K
+.It mipsel  Ta 4K
+.It mipsn32 Ta 4K
+.It mips64  Ta 4K
+.It mips64elTa 4K
+.It powerpc

svn commit: r303034 - head

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 18:05:25 2016
New Revision: 303034
URL: https://svnweb.freebsd.org/changeset/base/303034

Log:
  Include makewhatis in ITOOLS when MK_MAN_UTILS is true
  
  Previously it was conditional on MK_MAN. It's possible to build
  FreeBSD with man pages but without man page tools. MK_MAN_UTILS
  is the conditional used in share/man/Makefile for determining whether
  makewhatis is executed at install time, so it is the proper one for
  ITOOLS as well.
  
  PR:   210142
  MFC after:1 week

Modified:
  head/Makefile.inc1

Modified: head/Makefile.inc1
==
--- head/Makefile.inc1  Tue Jul 19 17:46:09 2016(r303033)
+++ head/Makefile.inc1  Tue Jul 19 18:05:25 2016(r303034)
@@ -884,7 +884,7 @@ ITOOLS= [ awk cap_mkdb cat chflags chmod
${LOCAL_ITOOLS}
 
 # Needed for share/man
-.if ${MK_MAN} != "no"
+.if ${MK_MAN_UTILS} != "no"
 ITOOLS+=makewhatis
 .endif
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303035 - in head/sys: arm/broadcom/bcm2835 boot/fdt/dts/arm sys

2016-07-19 Thread Mark Murray
Author: markm
Date: Tue Jul 19 18:07:47 2016
New Revision: 303035
URL: https://svnweb.freebsd.org/changeset/base/303035

Log:
  Random bit generator (RBG) driver for RPi and RPi2.
  
  Summary:
  This driver supports the following methods to trigger gathering random bits 
from the hardware:
  1. interrupt when the FIFO is full (default) fed into the harvest queue
  2. callout (when BCM2835_RNG_USE_CALLOUT is defined) every second if hz is 
less than 100, otherwise hz / 100, feeding the random bits into the harvest 
queue
  
  If the kernel is booted with verbose enabled, the contents of the registers 
will be dumped after the RBG is started during the attach routine.
  
  Author: hackagadget_gmail.com (Stephen J. Kiernan)
  
  Test Plan: Built RPI2 kernel and booted on board. Tested the different 
methods to feed the harvest queue (callout, interrupt) and the interrupt driven 
approach seems best. However, keeping the other method for people to be able to 
experiment with.
  
  Reviewed By: adrian, delphij, markm
  
  Differential Revision: https://reviews.freebsd.org/D6888

Added:
  head/sys/arm/broadcom/bcm2835/bcm2835_rng.c   (contents, props changed)
Modified:
  head/sys/arm/broadcom/bcm2835/files.bcm283x
  head/sys/boot/fdt/dts/arm/bcm2835.dtsi
  head/sys/boot/fdt/dts/arm/bcm2836.dtsi
  head/sys/sys/random.h

Added: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/sys/arm/broadcom/bcm2835/bcm2835_rng.c Tue Jul 19 18:07:47 2016
(r303035)
@@ -0,0 +1,534 @@
+/*
+ * Copyright (c) 2015, 2016, Stephen J. Kiernan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include 
+
+__FBSDID("$FreeBSD$");
+
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#include 
+#include 
+#include 
+
+#include 
+#include 
+
+#if !defined(BCM2835_RNG_USE_CALLOUT)
+#defineBCM2835_RNG_USE_INTERRUPT
+#endif
+
+static device_attach_t bcm2835_rng_attach;
+static device_detach_t bcm2835_rng_detach;
+static device_probe_t bcm2835_rng_probe;
+
+#defineRNG_CTRL0x00/* RNG Control Register 
*/
+#defineRNG_COMBLK1_OSC 0x003f  /*  Combiner Blk 1 
Oscillator */
+#defineRNG_COMBLK1_OSC_SHIFT   16
+#defineRNG_COMBLK2_OSC 0x0fc0  /*  Combiner Blk 2 
Oscillator */
+#defineRNG_COMBLK2_OSC_SHIFT   22
+#defineRNG_JCLK_BYP_DIV_CNT0xff00  /*  Jitter clk bypass 
divider
+   count */
+#defineRNG_JCLK_BYP_DIV_CNT_SHIFT 8
+#defineRNG_JCLK_BYP_SRC0x0020  /*  Jitter clk bypass 
source */
+#defineRNG_JCLK_BYP_SEL0x0010  /*  Jitter clk bypass 
select */
+#defineRNG_RBG2X   0x0002  /*  RBG 2X SPEED */
+#defineRNG_RBGEN_BIT   0x0001  /*  Enable RNG bit */
+
+#defineRNG_STATUS  0x04/* RNG status register 
*/
+#defineRND_VAL_SHIFT   24  /*  Shift for valid 
words */
+#defineRND_VAL_MASK0x00ff  /*  Number valid words 
mask */
+#defineRND_VAL_WARM_CNT0x4 /*  RNG Warm Up count */
+#defineRND_WARM_CNT0xf /*  RNG Warm Up Count 
mask */
+
+#defineRNG_DATA0x08/* RNG Data Register */
+#defineRNG_FF_THRES0x0c
+#defineRNG_FF_THRES_MASK   0x001f
+
+

Re: svn commit: r303035 - in head/sys: arm/broadcom/bcm2835 boot/fdt/dts/arm sys

2016-07-19 Thread Mark R V Murray
Hi *

I'm going to get a bollicking for the formatting in this. Apologies in advance!

M

> On 19 Jul 2016, at 19:07, Mark Murray  wrote:
> 
> Author: markm
> Date: Tue Jul 19 18:07:47 2016
> New Revision: 303035
> URL: https://svnweb.freebsd.org/changeset/base/303035
> 
> Log:
>  Random bit generator (RBG) driver for RPi and RPi2.
> 
>  Summary:
>  This driver supports the following methods to trigger gathering random bits 
> from the hardware:
>  1. interrupt when the FIFO is full (default) fed into the harvest queue
>  2. callout (when BCM2835_RNG_USE_CALLOUT is defined) every second if hz is 
> less than 100, otherwise hz / 100, feeding the random bits into the harvest 
> queue
> 
>  If the kernel is booted with verbose enabled, the contents of the registers 
> will be dumped after the RBG is started during the attach routine.
> 
>  Author: hackagadget_gmail.com (Stephen J. Kiernan)
> 
>  Test Plan: Built RPI2 kernel and booted on board. Tested the different 
> methods to feed the harvest queue (callout, interrupt) and the interrupt 
> driven approach seems best. However, keeping the other method for people to 
> be able to experiment with.
> 
>  Reviewed By: adrian, delphij, markm
> 
>  Differential Revision: https://reviews.freebsd.org/D6888
> 
> Added:
>  head/sys/arm/broadcom/bcm2835/bcm2835_rng.c   (contents, props changed)
> Modified:
>  head/sys/arm/broadcom/bcm2835/files.bcm283x
>  head/sys/boot/fdt/dts/arm/bcm2835.dtsi
>  head/sys/boot/fdt/dts/arm/bcm2836.dtsi
>  head/sys/sys/random.h
> 
> Added: head/sys/arm/broadcom/bcm2835/bcm2835_rng.c
> ==
> --- /dev/null 00:00:00 1970   (empty, because file is newly added)
> +++ head/sys/arm/broadcom/bcm2835/bcm2835_rng.c   Tue Jul 19 18:07:47 
> 2016(r303035)
> @@ -0,0 +1,534 @@
> +/*
> + * Copyright (c) 2015, 2016, Stephen J. Kiernan
> + * All rights reserved.
> + *
> + * Redistribution and use in source and binary forms, with or without
> + * modification, are permitted provided that the following conditions
> + * are met:
> + * 1. Redistributions of source code must retain the above copyright
> + *notice, this list of conditions and the following disclaimer.
> + * 2. Redistributions in binary form must reproduce the above copyright
> + *notice, this list of conditions and the following disclaimer in the
> + *documentation and/or other materials provided with the distribution.
> + *
> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
> + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
> + * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
> + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
> + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
> + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
> + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
> + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
> + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> + * SUCH DAMAGE.
> + */
> +
> +#include 
> +
> +__FBSDID("$FreeBSD$");
> +
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +#include 
> +
> +#include 
> +#include 
> +
> +#if !defined(BCM2835_RNG_USE_CALLOUT)
> +#define  BCM2835_RNG_USE_INTERRUPT
> +#endif
> +
> +static device_attach_t bcm2835_rng_attach;
> +static device_detach_t bcm2835_rng_detach;
> +static device_probe_t bcm2835_rng_probe;
> +
> +#define  RNG_CTRL0x00/* RNG Control Register 
> */
> +#define  RNG_COMBLK1_OSC 0x003f  /*  Combiner Blk 1 
> Oscillator */
> +#define  RNG_COMBLK1_OSC_SHIFT   16
> +#define  RNG_COMBLK2_OSC 0x0fc0  /*  Combiner Blk 2 
> Oscillator */
> +#define  RNG_COMBLK2_OSC_SHIFT   22
> +#define  RNG_JCLK_BYP_DIV_CNT0xff00  /*  Jitter clk bypass 
> divider
> + count */
> +#define  RNG_JCLK_BYP_DIV_CNT_SHIFT 8
> +#define  RNG_JCLK_BYP_SRC0x0020  /*  Jitter clk bypass 
> source */
> +#define  RNG_JCLK_BYP_SEL0x0010  /*  Jitter clk bypass 
> select */
> +#define  RNG_RBG2X   0x0002  /*  RBG 2X SPEED */
> +#define  RNG_RBGEN_BIT   0x0001  /*  Enable RNG bit */
> +
> +#define  RNG_STATUS  0x04/* RNG status register 
> */
> +#define  RND_VAL_SHIFT   24  /*  Shift for valid 
> words */
> +#define  RND_VAL_MASK0x00ff  /*  Number valid words 
> mask */
> +

svn commit: r303036 - head/usr.sbin/makefs

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 18:15:22 2016
New Revision: 303036
URL: https://svnweb.freebsd.org/changeset/base/303036

Log:
  makefs: reorder 'usage' alphabetically
  
  From NetBSD, Mon Aug 15 14:45:01 2011 + (wiz)
  
  Re-order `usage' alphabetically;
  rename option arguments in the manpage's `SYNOPSIS' section to
  match those from `usage' (not the other way around; the `usage'-line
  (and other parts of makefs.c) contain the correct names);
  minor punctuation improvements.
  
  From Snader_LB.
  
  makefs.8 1.36
  makefs.c 1.30
  
  Obtained from:NetBSD

Modified:
  head/usr.sbin/makefs/makefs.8
  head/usr.sbin/makefs/makefs.c

Modified: head/usr.sbin/makefs/makefs.8
==
--- head/usr.sbin/makefs/makefs.8   Tue Jul 19 18:07:47 2016
(r303035)
+++ head/usr.sbin/makefs/makefs.8   Tue Jul 19 18:15:22 2016
(r303036)
@@ -401,7 +401,8 @@ The
 utility appeared in
 .Nx 1.6 .
 .Sh AUTHORS
-.An Luke Mewburn Aq Mt lu...@netbsd.org
+.An Luke Mewburn
+.Aq Mt lu...@netbsd.org
 (original program),
 .An Daniel Watt ,
 .An Walter Deignan ,

Modified: head/usr.sbin/makefs/makefs.c
==
--- head/usr.sbin/makefs/makefs.c   Tue Jul 19 18:07:47 2016
(r303035)
+++ head/usr.sbin/makefs/makefs.c   Tue Jul 19 18:15:22 2016
(r303036)
@@ -403,10 +403,10 @@ usage(void)
 
prog = getprogname();
fprintf(stderr,
-"usage: %s [-t fs-type] [-o fs-options] [-d debug-mask] [-B endian]\n"
-"\t[-S sector-size] [-M minimum-size] [-m maximum-size] [-R roundup-size]\n"
-"\t[-s image-size] [-b free-blocks] [-f free-files] [-F mtree-specfile]\n"
-"\t[-xZ] [-N userdb-dir] [-T ]\n"
+"usage: %s [-xZ] [-B endian] [-b free-blocks] [-d debug-mask]\n"
+"\t[-F mtree-specfile] [-f free-files] [-M minimum-size] [-m maximum-size]\n"
+"\t[-N userdb-dir] [-o fs-options] [-R roundup-size] [-S sector-size]\n"
+"\t[-s image-size] [-T ] [-t fs-type]\n"
 "\timage-file directory | manifest [extra-directory ...]\n",
prog);
exit(1);
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r297023 - head/sbin/kldstat

2016-07-19 Thread Ken Merry

> On Mar 18, 2016, at 10:49 AM, Julian Elischer  wrote:
> 
> Author: julian
> Date: Fri Mar 18 14:49:11 2016
> New Revision: 297023
> URL: https://svnweb.freebsd.org/changeset/base/297023
> 
> Log:
>   Add the ability to print out ht emodule specific information in likely 
> formats.
>  Among other things this gives us the ability to find outthe syscall number 
> of a dynamically loaded syscall that has a dynamicly allocated vector number.
> 
>  MFC after:   1 week
>  Sponsored by:Panzura inc.
> 
> Modified:
>  head/sbin/kldstat/kldstat.8
>  head/sbin/kldstat/kldstat.c
> 
> Modified: head/sbin/kldstat/kldstat.8
> ==
> --- head/sbin/kldstat/kldstat.8   Fri Mar 18 13:32:37 2016
> (r297022)
> +++ head/sbin/kldstat/kldstat.8   Fri Mar 18 14:49:11 2016
> (r297023)
> @@ -36,10 +36,12 @@
> .Op Fl h
> .Op Fl q
> .Op Fl v
> +.Op Fl d
> .Op Fl i Ar id
> .Op Fl n Ar filename
> .Nm
> .Op Fl q
> +.Op Fl d
> .Op Fl m Ar modname
> .Sh DESCRIPTION
> The
> @@ -54,6 +56,8 @@ Display the size field in a human-readab
> instead of hex values.
> .It Fl v
> Be more verbose.
> +.It Fl d
> +Show the module specific data (as int, unsigned int and unsigned long)
> .It Fl i Ar id
> Display the status of only the file with this ID.
> .It Fl n Ar filename
> 
> Modified: head/sbin/kldstat/kldstat.c
> ==
> --- head/sbin/kldstat/kldstat.c   Fri Mar 18 13:32:37 2016
> (r297022)
> +++ head/sbin/kldstat/kldstat.c   Fri Mar 18 14:49:11 2016
> (r297023)
> @@ -36,19 +36,28 @@ __FBSDID("$FreeBSD$");
> #include 
> #include 
> #include 
> +#include 
> 
> #define   POINTER_WIDTH   ((int)(sizeof(void *) * 2 + 2))
> 
> +static int showdata = 0;
> +
> static void
> printmod(int modid)
> {
> struct module_stat stat;
> 
> +bzero(&stat, sizeof(stat));
> stat.version = sizeof(struct module_stat);
> if (modstat(modid, &stat) < 0)
>   warn("can't stat module id %d", modid);
> else
> - printf("\t\t%2d %s\n", stat.id, stat.name);
> + if (showdata) {
> + printf("\t\t%2d %s (%d, %u, 0x%lx)\n", stat.id, stat.name, 
> + stat.data.intval, stat.data.uintval, stat.data.ulongval);
> + } else {
> + printf("\t\t%2d %s\n", stat.id, stat.name);
> + }
> }
> 
> static void
> @@ -88,8 +97,8 @@ printfile(int fileid, int verbose, int h
> static void
> usage(void)
> {
> -fprintf(stderr, "usage: kldstat [-h] [-q] [-v] [-i id] [-n filename]\n");
> -fprintf(stderr, "   kldstat [-q] [-m modname]\n");
> +fprintf(stderr, "usage: kldstata[-d] [-h] [-q] [-v] [-i id] [-n 
> filename]\n");
> +fprintf(stderr, "   kldstat [-d] [-q] [-m modname]\n”);

Looks like there is a typo in the usage.

Ken
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

svn commit: r303037 - head/sys/kern

2016-07-19 Thread Randall Stewart
Author: rrs
Date: Tue Jul 19 18:31:19 2016
New Revision: 303037
URL: https://svnweb.freebsd.org/changeset/base/303037

Log:
  This reverts out Gleb's changes and adds three small
  fixes that I think closes up the races Gleb was
  looking for. This is running quite nicely in Netflix and
  now no longer causes TCP-tcb leaks.
  
  Differential Revision:7135

Modified:
  head/sys/kern/kern_timeout.c

Modified: head/sys/kern/kern_timeout.c
==
--- head/sys/kern/kern_timeout.cTue Jul 19 18:15:22 2016
(r303036)
+++ head/sys/kern/kern_timeout.cTue Jul 19 18:31:19 2016
(r303037)
@@ -1050,7 +1050,7 @@ callout_reset_sbt_on(struct callout *c, 
 */
if (c->c_lock != NULL && !cc_exec_cancel(cc, direct))
cancelled = cc_exec_cancel(cc, direct) = true;
-   if (cc_exec_waiting(cc, direct)) {
+   if (cc_exec_waiting(cc, direct) || cc_exec_drain(cc, direct)) {
/*
 * Someone has called callout_drain to kill this
 * callout.  Don't reschedule.
@@ -1166,7 +1166,7 @@ _callout_stop_safe(struct callout *c, in
struct callout_cpu *cc, *old_cc;
struct lock_class *class;
int direct, sq_locked, use_lock;
-   int cancelled, not_on_a_list;
+   int not_on_a_list;
 
if ((flags & CS_DRAIN) != 0)
WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, c->c_lock,
@@ -1234,17 +1234,47 @@ again:
panic("migration should not happen");
 #endif
}
-
+   if ((drain != NULL) && (c->c_iflags & CALLOUT_PENDING) &&
+   (cc_exec_curr(cc, direct) != c)) {
+   /* 
+* This callout is executing and we are draining.
+* The only way this can happen is if its also
+* been rescheduled to run on one thread *and* asked to drain
+* on this thread (at the same time it is waiting to execute).
+*/
+   if ((c->c_iflags & CALLOUT_PROCESSED) == 0) {
+   if (cc_exec_next(cc) == c)
+   cc_exec_next(cc) = LIST_NEXT(c, c_links.le);
+   LIST_REMOVE(c, c_links.le);
+   } else {
+   TAILQ_REMOVE(&cc->cc_expireq, c, c_links.tqe);
+   }
+   c->c_iflags &= ~CALLOUT_PENDING;
+   c->c_flags &= ~CALLOUT_ACTIVE;
+   }
/*
-* If the callout is running, try to stop it or drain it.
+* If the callout isn't pending, it's not on the queue, so
+* don't attempt to remove it from the queue.  We can try to
+* stop it by other means however.
 */
-   if (cc_exec_curr(cc, direct) == c) {
+   if (!(c->c_iflags & CALLOUT_PENDING)) {
/*
-* Succeed we to stop it or not, we must clear the
-* active flag - this is what API users expect.
+* If it wasn't on the queue and it isn't the current
+* callout, then we can't stop it, so just bail.
+* It probably has already been run (if locking
+* is properly done). You could get here if the caller
+* calls stop twice in a row for example. The second
+* call would fall here without CALLOUT_ACTIVE set.
 */
c->c_flags &= ~CALLOUT_ACTIVE;
-
+   if (cc_exec_curr(cc, direct) != c) {
+   CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p",
+   c, c->c_func, c->c_arg);
+   CC_UNLOCK(cc);
+   if (sq_locked)
+   sleepq_release(&cc_exec_waiting(cc, direct));
+   return (-1);
+   }
if ((flags & CS_DRAIN) != 0) {
/*
 * The current callout is running (or just
@@ -1278,7 +1308,6 @@ again:
old_cc = cc;
goto again;
}
-
/*
 * Migration could be cancelled here, but
 * as long as it is still not sure when it
@@ -1362,6 +1391,8 @@ again:
cc_exec_drain(cc, direct) = drain;
}
CC_UNLOCK(cc);
+   if (drain)
+   return(0);
return ((flags & CS_EXECUTING) != 0);
}
CTR3(KTR_CALLOUT, "failed to stop %p func %p arg %p",
@@ -1369,20 +1400,12 @@ again:
if (drain) {
cc_exec_drain(cc, direct) = drain;
}
-   KASSERT(!sq_locked,

Re: svn commit: r303037 - head/sys/kern

2016-07-19 Thread Ngie Cooper (yaneurabeya)

> On Jul 19, 2016, at 11:31, Randall Stewart  wrote:
> 
> Author: rrs
> Date: Tue Jul 19 18:31:19 2016
> New Revision: 303037
> URL: https://svnweb.freebsd.org/changeset/base/303037
> 
> Log:
>  This reverts out Gleb's changes and adds three small
>  fixes that I think closes up the races Gleb was
>  looking for. This is running quite nicely in Netflix and
>  now no longer causes TCP-tcb leaks.
> 
>  Differential Revision:   7135

This needs to be MFCed to ^/stable/11.
Thanks,
-Ngie


signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Nathan Whitehorn

Thank you! This is super useful.
-Nathan

On 07/19/16 10:46, Ed Maste wrote:

Author: emaste
Date: Tue Jul 19 17:46:09 2016
New Revision: 303033
URL: https://svnweb.freebsd.org/changeset/base/303033

Log:
   add an arch.7 man page with architecture-specific details
   
   Based on details collected on the wiki, at

   https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics
   Further details to be added over time.
   
   Sponsored by:	The FreeBSD Foundation

   Differential Revision:   https://reviews.freebsd.org/D7096

Added:
   head/share/man/man7/arch.7   (contents, props changed)
Modified:
   head/share/man/man7/Makefile

Modified: head/share/man/man7/Makefile
==
--- head/share/man/man7/MakefileTue Jul 19 17:31:48 2016
(r303032)
+++ head/share/man/man7/MakefileTue Jul 19 17:46:09 2016
(r303033)
@@ -7,6 +7,7 @@ PACKAGE=runtime-manuals
  
  #MISSING: eqnchar.7 ms.7 term.7

  MAN=  adding_user.7 \
+   arch.7 \
ascii.7 \
bsd.snmpmod.mk.7 \
build.7 \

Added: head/share/man/man7/arch.7
==
--- /dev/null   00:00:00 1970   (empty, because file is newly added)
+++ head/share/man/man7/arch.7  Tue Jul 19 17:46:09 2016(r303033)
@@ -0,0 +1,171 @@
+.\" Copyright (c) 2016 The FreeBSD Foundation. All rights reserved.
+.\"
+.\" This documentation was created by Ed Maste under sponsorship of
+.\" The FreeBSD Foundation.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\"notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\"notice, this list of conditions and the following disclaimer in the
+.\"documentation and/or other materials provided with the distribution.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd July 19, 2016
+.Dt ARCH 7
+.Os
+.Sh NAME
+.Nm arch
+.Nd Architecture-specific details
+.Sh DESCRIPTION
+Differences between CPU architectures and platforms supported by
+.Fx .
+.Pp
+.Ss Type sizes
+On all supported architectures,
+.Bl -column -offset -indent "long long" "Size"
+.It Sy Type Ta Sy Size
+.It short Ta 2
+.It int Ta 4
+.It long Ta sizeof(void*)
+.It long long Ta 8
+.It float Ta 4
+.It double Ta 8
+.El
+.Bl -column -offset indent ".Sy Architecture" ".Sy sizeof(void *)" ".Sy 
"sizeof(long double)"
+.It Sy Architecture Ta Sy sizeof(void *) Ta Sy sizeof(long double)
+.It amd64   Ta 8 Ta 16
+.It arm Ta 4 Ta  8
+.It armeb   Ta 4 Ta  8
+.It armv6   Ta 4 Ta  8
+.It arm64   Ta 8 Ta 16
+.It i386Ta 4 Ta 12
+.It mipsTa 4 Ta  8
+.It mipsel  Ta 4 Ta  8
+.It mipsn32 Ta 4 Ta  8
+.It mips64  Ta 8 Ta  8
+.It mips64elTa 8 Ta  8
+.It powerpc Ta 4 Ta  8
+.It powerpc64   Ta 8 Ta  8
+.It riscv   Ta 8 Ta
+.It sparc64 Ta 8 Ta 16
+.El
+.Ss Endianness and Char Signedness
+.Bl -column -offset indent ".Sy Architecture" ".Sy Endianness" ".Sy "char 
Signedness"
+.It Sy Architecture Ta Sy Endianness Ta Sy char Signedness
+.It amd64   Ta little Ta   signed
+.It arm Ta little Ta unsigned
+.It armeb   Ta bigTa unsigned
+.It armv6   Ta little Ta unsigned
+.It arm64   Ta little Ta unsigned
+.It i386Ta little Ta   signed
+.It mipsTa little Ta   signed
+.It mipsel  Ta bigTa   signed
+.It mipsn32 Ta little Ta   signed
+.It mips64  Ta little Ta   signed
+.It mips64elTa little Ta   signed
+.It powerpc Ta bigTa unsigned
+.It powerpc64   Ta bigTa unsigned
+.It riscv   Ta little Ta   signed
+.It sparc64 Ta bigTa   signed
+.El
+.Ss Page Size
+.Bl -column -offset indent ".Sy Architecture" ".Sy Page Sizes"
+.It Sy Architecture Ta Sy Page Sizes
+.It amd64   Ta 4K, 2M, 1G
+.It arm Ta 4K
+.It armeb   Ta 4K
+.It armv6   Ta 4K
+.It arm64   Ta 4K, 2M, 1G
+.It i386Ta 4K, 2M (PAE), 4M
+.It mipsTa 4K
+.It mipsel

svn commit: r303038 - in head/usr.sbin/makefs: . ffs

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 18:40:54 2016
New Revision: 303038
URL: https://svnweb.freebsd.org/changeset/base/303038

Log:
  makefs: sync NetBSD IDs with upstream for changes that we already have
  
  May 22 21:51:39 2011 + (christos):
  
  From Nathan Whitehorn (nwhitehorn at freebsd dot org):
  Add code to generate bootable ISOs on Powermac and CHRP systems.
  Synthesize some partition maps (APM and MBR, respectively) pointing
  to (a) the whole disk, and (b) relevant El Torito boot images that
  have been added by other code. These partition maps are a little
  bit funny looking, but they seem to work. FreeBSD has been using
  this successfully in their release generation on powerpc, as well
  as generating all non-SPARC install media. SPARC support could
  probably be added as an extension of this patch.
  
  makefs.8 1.33
  
  Tue Aug 23 17:09:11 2011 + (christos):
  
  PR/45285: Martin Matuska: makefs does not properly convert ISO level 1 
and 2
  filenames (buffer overflow)
  
  makefs does not properly verify the maximum filename length in the
  special "." case for both ISO level 1 and ISO level 2 filename
  conversion.  This creates broken images or causes a buffer overflow
  (ISO level 2).
  
  ISO level 1:
  If a filename contains only dots or up to 8 characters followed by
  dots the 8+3 limit check doesn't work.
  
  ISO level 2:
  If a filename contains a dot in the first 30 characters and a dot
  on the 30th character, the length limit check doesn't work and the
  buffer is overflowed.
  
  $ mkdir level1
  $ touch level1/12345
  $ makefs -t cd9660 -o isolevel=1 test.iso level1
  
  $ mkdir level2
  $ touch level2/1234567890.2345678901234567.34567890123456789012345
  $ makefs -t cd9660 -o isolevel=2 test.iso level2
  
  cd9660.c 1.32
  
  Sun Oct 9 21:33:43 2011 + (christos):
  
  add support for setting the ufs label. (Nathan Whitehorn)
  
  ffs.c 1.45
  ffs.h 1.2
  mkfs.c 1.22
  makefs.8 1.37
  
  Obtained from:NetBSD

Modified:
  head/usr.sbin/makefs/cd9660.c
  head/usr.sbin/makefs/ffs.c
  head/usr.sbin/makefs/ffs.h
  head/usr.sbin/makefs/ffs/mkfs.c
  head/usr.sbin/makefs/makefs.8

Modified: head/usr.sbin/makefs/cd9660.c
==
--- head/usr.sbin/makefs/cd9660.c   Tue Jul 19 18:31:19 2016
(r303037)
+++ head/usr.sbin/makefs/cd9660.c   Tue Jul 19 18:40:54 2016
(r303038)
@@ -1,4 +1,4 @@
-/* $NetBSD: cd9660.c,v 1.31 2011/08/06 23:25:19 christos Exp $ */
+/* $NetBSD: cd9660.c,v 1.32 2011/08/23 17:09:11 christos Exp $ */
 
 /*
  * Copyright (c) 2005 Daniel Watt, Walter Deignan, Ryan Gabrys, Alan

Modified: head/usr.sbin/makefs/ffs.c
==
--- head/usr.sbin/makefs/ffs.c  Tue Jul 19 18:31:19 2016(r303037)
+++ head/usr.sbin/makefs/ffs.c  Tue Jul 19 18:40:54 2016(r303038)
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs.c,v 1.44 2009/04/28 22:49:26 joerg Exp $   */
+/* $NetBSD: ffs.c,v 1.45 2011/10/09 22:49:26 christos Exp $*/
 
 /*
  * Copyright (c) 2001 Wasabi Systems, Inc.

Modified: head/usr.sbin/makefs/ffs.h
==
--- head/usr.sbin/makefs/ffs.h  Tue Jul 19 18:31:19 2016(r303037)
+++ head/usr.sbin/makefs/ffs.h  Tue Jul 19 18:40:54 2016(r303038)
@@ -1,4 +1,4 @@
-/* $NetBSD: ffs.h,v 1.1 2004/12/20 20:51:42 jmc Exp $  */
+/* $NetBSD: ffs.h,v 1.2 2004/12/20 20:51:42 jmc Exp $  */
 
 /*
  * Copyright (c) 2001-2003 Wasabi Systems, Inc.

Modified: head/usr.sbin/makefs/ffs/mkfs.c
==
--- head/usr.sbin/makefs/ffs/mkfs.c Tue Jul 19 18:31:19 2016
(r303037)
+++ head/usr.sbin/makefs/ffs/mkfs.c Tue Jul 19 18:40:54 2016
(r303038)
@@ -1,4 +1,4 @@
-/* $NetBSD: mkfs.c,v 1.20 2004/06/24 22:30:13 lukem Exp $  */
+/* $NetBSD: mkfs.c,v 1.22 2011/10/09 22:30:13 christos Exp $   */
 
 /*
  * Copyright (c) 2002 Networks Associates Technology, Inc.

Modified: head/usr.sbin/makefs/makefs.8
==
--- head/usr.sbin/makefs/makefs.8   Tue Jul 19 18:31:19 2016
(r303037)
+++ head/usr.sbin/makefs/makefs.8   Tue Jul 19 18:40:54 2016
(r303038)
@@ -1,4 +1,4 @@
-.\"$NetBSD: makefs.8,v 1.32 2009/01/20 20:47:25 bjh21 Exp $
+.\"$NetBSD: makefs.8,v 1.33 2011/05/22 21:51:39 christos Exp $
 .\"
 .\" Copyright (c) 2001-2003 Wasabi Systems, Inc.
 .\" All rights reserved.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebs

svn commit: r303039 - head/sys/boot/efi/libefi

2016-07-19 Thread Emmanuel Vadot
Author: manu
Date: Tue Jul 19 19:00:22 2016
New Revision: 303039
URL: https://svnweb.freebsd.org/changeset/base/303039

Log:
  Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial 
console.
  
  Reviewed by:  andrew, emaste
  MFC after:1 week
  Differential Revision:https://reviews.freebsd.org/D6783

Modified:
  head/sys/boot/efi/libefi/Makefile

Modified: head/sys/boot/efi/libefi/Makefile
==
--- head/sys/boot/efi/libefi/Makefile   Tue Jul 19 18:40:54 2016
(r303038)
+++ head/sys/boot/efi/libefi/Makefile   Tue Jul 19 19:00:22 2016
(r303039)
@@ -35,6 +35,10 @@ CFLAGS+= -I${.CURDIR}/../../common
 
 # Handle FreeBSD specific %b and %D printf format specifiers
 CFLAGS+= ${FORMAT_EXTENSIONS}
+
+# Do not use TERM_EMU on arm and arm64 as it doesn't behave well with serial 
console
+.if ${MACHINE_CPUARCH} != "arm" && ${MACHINE_CPUARCH} != "aarch64"
 CFLAGS+= -DTERM_EMU
+.endif
 
 .include 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303040 - in head/sys/dev: nvd nvme

2016-07-19 Thread Scott Long
Author: scottl
Date: Tue Jul 19 19:09:23 2016
New Revision: 303040
URL: https://svnweb.freebsd.org/changeset/base/303040

Log:
  Supporting flushing the dump before returning, and simplify/combine the
  logic.  Switch to a 5us delay since most NVME devices can easily do 200,000
  iops.
  
  Submitted by: imp
  MFC after:3 days
  Sponsored by: Netflix, Inc.

Modified:
  head/sys/dev/nvd/nvd.c
  head/sys/dev/nvme/nvme_ns_cmd.c

Modified: head/sys/dev/nvd/nvd.c
==
--- head/sys/dev/nvd/nvd.c  Tue Jul 19 19:00:22 2016(r303039)
+++ head/sys/dev/nvd/nvd.c  Tue Jul 19 19:09:23 2016(r303040)
@@ -237,14 +237,7 @@ nvd_dump(void *arg, void *virt, vm_offse
dp = arg;
ndisk = dp->d_drv1;
 
-   if (len > 0) {
-   if ((error = nvme_ns_dump(ndisk->ns, virt, offset, len)) != 0)
-   return (error);
-   } else {
-   /* XXX sync to stable storage */
-   }
-
-   return (0);
+   return (nvme_ns_dump(ndisk->ns, virt, offset, len));
 }
 
 static void

Modified: head/sys/dev/nvme/nvme_ns_cmd.c
==
--- head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 19:00:22 2016
(r303039)
+++ head/sys/dev/nvme/nvme_ns_cmd.c Tue Jul 19 19:09:23 2016
(r303040)
@@ -153,7 +153,7 @@ nvme_ns_cmd_flush(struct nvme_namespace 
 }
 
 /* Timeout = 1 sec */
-#define NVD_DUMP_TIMEOUT   10
+#define NVD_DUMP_TIMEOUT   20
 
 int
 nvme_ns_dump(struct nvme_namespace *ns, void *virt, off_t offset, size_t len)
@@ -171,14 +171,13 @@ nvme_ns_dump(struct nvme_namespace *ns, 
return (ENOMEM);
 
cmd = &req->cmd;
-   cmd->opc = NVME_OPC_WRITE;
-   cmd->nsid = ns->id;
 
-   lba = offset / nvme_ns_get_sector_size(ns);
-   lba_count = len / nvme_ns_get_sector_size(ns);
-
-   *(uint64_t *)&cmd->cdw10 = lba;
-   cmd->cdw12 = lba_count - 1;
+   if (len > 0) {
+   lba = offset / nvme_ns_get_sector_size(ns);
+   lba_count = len / nvme_ns_get_sector_size(ns);
+   nvme_ns_write_cmd(cmd, ns->id, lba, lba_count);
+   } else
+   nvme_ns_flush_cmd(cmd, ns->id);
 
nvme_ctrlr_submit_io_request(ns->ctrlr, req);
if (req->qpair == NULL)
@@ -186,7 +185,7 @@ nvme_ns_dump(struct nvme_namespace *ns, 
 
i = 0;
while ((i++ < NVD_DUMP_TIMEOUT) && (status.done == FALSE)) {
-   DELAY(10);
+   DELAY(5);
nvme_qpair_process_completions(req->qpair);
}
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303041 - head/share/misc

2016-07-19 Thread Rene Ladan
Author: rene (doc,ports committer)
Date: Tue Jul 19 19:13:01 2016
New Revision: 303041
URL: https://svnweb.freebsd.org/changeset/base/303041

Log:
  erwin stepped down from portmgr, update the graph.

Modified:
  head/share/misc/organization.dot

Modified: head/share/misc/organization.dot
==
--- head/share/misc/organization.dotTue Jul 19 19:09:23 2016
(r303040)
+++ head/share/misc/organization.dotTue Jul 19 19:13:01 2016
(r303041)
@@ -30,7 +30,7 @@ coresecretary [label="Core Team Secretar
 doccommitters [label="Doc/www Committers\ndoc-committ...@freebsd.org"]
 doceng [label="Documentation Engineering Team\ndoc...@freebsd.org\ngjb, 
blackend,\ngabor, hrs"]
 portscommitters [label="Ports Committers\nports-committ...@freebsd.org"]
-portmgr [label="Port Management Team\nport...@freebsd.org\nantoine, bapt, 
bdrewery,\nerwin, mat, swills,\nmiwi"]
+portmgr [label="Port Management Team\nport...@freebsd.org\nantoine, bapt, 
bdrewery,\nmat, swills, miwi"]
 portmgrsecretary [label="Port Management Team 
Secretary\nportmgr-secret...@freebsd.org\nrene"]
 re [label="Primary Release Engineering Team\n...@freebsd.org\nkib, blackend, 
jpaetzel, hrs, kensmith"]
 secteam [label="Security Team\nsect...@freebsd.org\ndelphij,\ndes, gavin, 
gjb,\nglebius, remko"]
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303042 - head/sys/dev/nvd

2016-07-19 Thread Scott Long
Author: scottl
Date: Tue Jul 19 19:19:03 2016
New Revision: 303042
URL: https://svnweb.freebsd.org/changeset/base/303042

Log:
  Remove unused variable from last commit.

Modified:
  head/sys/dev/nvd/nvd.c

Modified: head/sys/dev/nvd/nvd.c
==
--- head/sys/dev/nvd/nvd.c  Tue Jul 19 19:13:01 2016(r303041)
+++ head/sys/dev/nvd/nvd.c  Tue Jul 19 19:19:03 2016(r303042)
@@ -232,7 +232,6 @@ nvd_dump(void *arg, void *virt, vm_offse
 {
struct nvd_disk *ndisk;
struct disk *dp;
-   int error;
 
dp = arg;
ndisk = dp->d_drv1;
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303043 - in head: share/man/man4 sys/dev/vt sys/dev/vt/hw/fb

2016-07-19 Thread Conrad E. Meyer
Author: cem
Date: Tue Jul 19 19:20:47 2016
New Revision: 303043
URL: https://svnweb.freebsd.org/changeset/base/303043

Log:
  Increase vt(4) framebuffer maximum size
  
  And rename "DEFAULT" constants to the more accurate "MAX."
  
  PR:   210382
  Submitted by: Felix 
  Reviewed by:  wblock, cem
  Tested by:Dave Cottlehuber 

Modified:
  head/share/man/man4/vt.4
  head/sys/dev/vt/hw/fb/vt_fb.c
  head/sys/dev/vt/vt.h
  head/sys/dev/vt/vt_core.c

Modified: head/share/man/man4/vt.4
==
--- head/share/man/man4/vt.4Tue Jul 19 19:19:03 2016(r303042)
+++ head/share/man/man4/vt.4Tue Jul 19 19:20:47 2016(r303043)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd June 21, 2016
+.Dd July 19, 2016
 .Dt "VIRTUAL TERMINALS" 4
 .Os
 .Sh NAME
@@ -36,8 +36,8 @@
 .Cd "options VT_MAXWINDOWS=N"
 .Cd "options VT_ALT_TO_ESC_HACK=1"
 .Cd "options VT_TWOBUTTON_MOUSE"
-.Cd "options VT_FB_DEFAULT_WIDTH=X"
-.Cd "options VT_FB_DEFAULT_HEIGHT=Y"
+.Cd "options VT_FB_MAX_WIDTH=X"
+.Cd "options VT_FB_MAX_HEIGHT=Y"
 .Cd "options SC_NO_CUTPASTE"
 .Cd "device vt"
 .Pp

Modified: head/sys/dev/vt/hw/fb/vt_fb.c
==
--- head/sys/dev/vt/hw/fb/vt_fb.c   Tue Jul 19 19:19:03 2016
(r303042)
+++ head/sys/dev/vt/hw/fb/vt_fb.c   Tue Jul 19 19:20:47 2016
(r303043)
@@ -416,10 +416,10 @@ vt_fb_init(struct vt_device *vd)
int err;
 
info = vd->vd_softc;
-   vd->vd_height = MIN(VT_FB_DEFAULT_HEIGHT, info->fb_height);
+   vd->vd_height = MIN(VT_FB_MAX_HEIGHT, info->fb_height);
margin = (info->fb_height - vd->vd_height) >> 1;
vd->vd_transpose = margin * info->fb_stride;
-   vd->vd_width = MIN(VT_FB_DEFAULT_WIDTH, info->fb_width);
+   vd->vd_width = MIN(VT_FB_MAX_WIDTH, info->fb_width);
margin = (info->fb_width - vd->vd_width) >> 1;
vd->vd_transpose += margin * (info->fb_bpp / NBBY);
vd->vd_video_dev = info->fb_video_dev;

Modified: head/sys/dev/vt/vt.h
==
--- head/sys/dev/vt/vt.hTue Jul 19 19:19:03 2016(r303042)
+++ head/sys/dev/vt/vt.hTue Jul 19 19:20:47 2016(r303043)
@@ -377,11 +377,11 @@ void vt_upgrade(struct vt_device *vd);
 #definePIXEL_WIDTH(w)  ((w) / 8)
 #definePIXEL_HEIGHT(h) ((h) / 16)
 
-#ifndef VT_FB_DEFAULT_WIDTH
-#defineVT_FB_DEFAULT_WIDTH 2048
+#ifndef VT_FB_MAX_WIDTH
+#defineVT_FB_MAX_WIDTH 4096
 #endif
-#ifndef VT_FB_DEFAULT_HEIGHT
-#defineVT_FB_DEFAULT_HEIGHT1200
+#ifndef VT_FB_MAX_HEIGHT
+#defineVT_FB_MAX_HEIGHT2400
 #endif
 
 /* name argument is not used yet. */

Modified: head/sys/dev/vt/vt_core.c
==
--- head/sys/dev/vt/vt_core.c   Tue Jul 19 19:19:03 2016(r303042)
+++ head/sys/dev/vt/vt_core.c   Tue Jul 19 19:20:47 2016(r303043)
@@ -181,8 +181,8 @@ static void vt_resume_handler(void *priv
 
 SET_DECLARE(vt_drv_set, struct vt_driver);
 
-#define_VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_DEFAULT_HEIGHT))
-#define_VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_DEFAULT_WIDTH))
+#define_VTDEFH MAX(100, PIXEL_HEIGHT(VT_FB_MAX_HEIGHT))
+#define_VTDEFW MAX(200, PIXEL_WIDTH(VT_FB_MAX_WIDTH))
 
 struct terminalvt_consterm;
 static struct vt_windowvt_conswindow;
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Conrad Meyer
On Tue, Jul 19, 2016 at 10:46 AM, Ed Maste  wrote:
> Author: emaste
> Date: Tue Jul 19 17:46:09 2016
> New Revision: 303033
> URL: https://svnweb.freebsd.org/changeset/base/303033
>
> Log:
>   add an arch.7 man page with architecture-specific details
>
>   Based on details collected on the wiki, at
>   https://wiki.freebsd.org/EdMaste/ArchitectureSpecifics
>   Further details to be added over time.
>
>   Sponsored by: The FreeBSD Foundation
>   Differential Revision:https://reviews.freebsd.org/D7096
>
> Added:
>   head/share/man/man7/arch.7   (contents, props changed)
> Modified:
>   head/share/man/man7/Makefile
>
> ...
> Added: head/share/man/man7/arch.7
> ==
> --- /dev/null   00:00:00 1970   (empty, because file is newly added)
> +++ head/share/man/man7/arch.7  Tue Jul 19 17:46:09 2016(r303033)
> @@ -0,0 +1,171 @@
> ...
> +.Ss Predefined Macros
> +The compiler provides a number of predefined macros.
> +Some of these provide architecture-specific details and are explained below.
> +Other macros, including those required by the language standard, are not
> +included here.
> +.Pp
> +The full set of predefined macros can be obtained with this command:
> +.Bd -literal -offset indent
> +cc -x c -Dm -E /dev/null
> +.Ed
> +.Pp
> +Common type size and endianness macros:
> +.Bl -column -offset indent "BYTE_ORDER" ".Sy Meaning"
> +.It Sy Macro Ta Sy Meaning
> +.It Dv __LP64__ Ta 64-bit (8-byte) long and pointer, 32-bit (4-byte) int
> +.It Dv __ILP32__ Ta 32-bit (4-byte) int, long and pointer

ILP32 was only added on CURRENT during the 11 timeframe (the r276479
3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW.
(Not useful for ports, for example.)

Sure, it's probably okay that this manual page only describes the
release it is present in.

Best,
Conrad
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Ed Maste
On 19 July 2016 at 15:37, Conrad Meyer  wrote:
>
> ILP32 was only added on CURRENT during the 11 timeframe (the r276479
> 3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW.
> (Not useful for ports, for example.)
>
> Sure, it's probably okay that this manual page only describes the
> release it is present in.

Good point; I should add a note to clarify this in the page itself.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303044 - head/share/man/man7

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 19:50:30 2016
New Revision: 303044
URL: https://svnweb.freebsd.org/changeset/base/303044

Log:
  arch.7: we also use 1M page mappings on armv6
  
  Submitted by: alc

Modified:
  head/share/man/man7/arch.7

Modified: head/share/man/man7/arch.7
==
--- head/share/man/man7/arch.7  Tue Jul 19 19:20:47 2016(r303043)
+++ head/share/man/man7/arch.7  Tue Jul 19 19:50:30 2016(r303044)
@@ -90,7 +90,7 @@ On all supported architectures,
 .It amd64   Ta 4K, 2M, 1G
 .It arm Ta 4K
 .It armeb   Ta 4K
-.It armv6   Ta 4K
+.It armv6   Ta 4K, 1M
 .It arm64   Ta 4K, 2M, 1G
 .It i386Ta 4K, 2M (PAE), 4M
 .It mipsTa 4K
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303045 - head/share/man/man7

2016-07-19 Thread Ed Maste
Author: emaste
Date: Tue Jul 19 20:11:50 2016
New Revision: 303045
URL: https://svnweb.freebsd.org/changeset/base/303045

Log:
  arch.7: correct MIPS endianness transcription error
  
  Submitted by: Nikolai Lifanov 

Modified:
  head/share/man/man7/arch.7

Modified: head/share/man/man7/arch.7
==
--- head/share/man/man7/arch.7  Tue Jul 19 19:50:30 2016(r303044)
+++ head/share/man/man7/arch.7  Tue Jul 19 20:11:50 2016(r303045)
@@ -74,10 +74,10 @@ On all supported architectures,
 .It armv6   Ta little Ta unsigned
 .It arm64   Ta little Ta unsigned
 .It i386Ta little Ta   signed
-.It mipsTa little Ta   signed
-.It mipsel  Ta bigTa   signed
-.It mipsn32 Ta little Ta   signed
-.It mips64  Ta little Ta   signed
+.It mipsTa bigTa   signed
+.It mipsel  Ta little Ta   signed
+.It mipsn32 Ta bigTa   signed
+.It mips64  Ta bigTa   signed
 .It mips64elTa little Ta   signed
 .It powerpc Ta bigTa unsigned
 .It powerpc64   Ta bigTa unsigned
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Conrad Meyer
On Tue, Jul 19, 2016 at 12:51 PM, Ed Maste  wrote:
> On 19 July 2016 at 15:37, Conrad Meyer  wrote:
>>
>> ILP32 was only added on CURRENT during the 11 timeframe (the r276479
>> 3.5.0 import), and can't be relied upon for stable/10 or 9, FWIW.
>> (Not useful for ports, for example.)
>>
>> Sure, it's probably okay that this manual page only describes the
>> release it is present in.
>
> Good point; I should add a note to clarify this in the page itself.

Alternatively, it looks like a pretty trivial backport.  But I'm not
volunteering :-).

Best,
Conrad
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303046 - head/lib/libc/locale

2016-07-19 Thread Pedro F. Giffuni
Author: pfg
Date: Tue Jul 19 20:22:13 2016
New Revision: 303046
URL: https://svnweb.freebsd.org/changeset/base/303046

Log:
  libc: tag the Rune initialization function prototypes visibility as hidden.
  
  It is good practice to export as few symbols as possible from your shared
  libraries, so use the GCC visibility attribute in this case, matching what
  Apple's libc does.
  
  Reference:
  
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html
  
  Hinted by:Apple's libc 1082.20.4
  MFC after:1 week

Modified:
  head/lib/libc/locale/mblocal.h

Modified: head/lib/libc/locale/mblocal.h
==
--- head/lib/libc/locale/mblocal.h  Tue Jul 19 20:11:50 2016
(r303045)
+++ head/lib/libc/locale/mblocal.h  Tue Jul 19 20:22:13 2016
(r303046)
@@ -65,18 +65,18 @@ extern struct xlocale_ctype __xlocale_gl
 /*
  * Rune initialization function prototypes.
  */
-int_none_init(struct xlocale_ctype *, _RuneLocale *);
-int_UTF8_init(struct xlocale_ctype *, _RuneLocale *);
-int_EUC_CN_init(struct xlocale_ctype *, _RuneLocale *);
-int_EUC_JP_init(struct xlocale_ctype *, _RuneLocale *);
-int_EUC_KR_init(struct xlocale_ctype *, _RuneLocale *);
-int_EUC_TW_init(struct xlocale_ctype *, _RuneLocale *);
-int_GB18030_init(struct xlocale_ctype *, _RuneLocale *);
-int_GB2312_init(struct xlocale_ctype *, _RuneLocale *);
-int_GBK_init(struct xlocale_ctype *, _RuneLocale *);
-int_BIG5_init(struct xlocale_ctype *, _RuneLocale *);
-int_MSKanji_init(struct xlocale_ctype *, _RuneLocale *);
-int_ascii_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _none_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _ascii_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _UTF8_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _EUC_CN_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _EUC_JP_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _EUC_KR_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _EUC_TW_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _GB18030_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _GB2312_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _GBK_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _BIG5_init(struct xlocale_ctype *, _RuneLocale *);
+__hidden int   _MSKanji_init(struct xlocale_ctype *, _RuneLocale *);
 
 typedef size_t (*mbrtowc_pfn_t)(wchar_t * __restrict,
 const char * __restrict, size_t, mbstate_t * __restrict);
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303046 - head/lib/libc/locale

2016-07-19 Thread Ed Schouten
Hi Pedro,

2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni :
> Author: pfg
> Date: Tue Jul 19 20:22:13 2016
> New Revision: 303046
> URL: https://svnweb.freebsd.org/changeset/base/303046
>
> Log:
>   libc: tag the Rune initialization function prototypes visibility as hidden.

How does this interact with symbol versioning/mapping? Wouldn't our C
library's symbol map already make these symbols hidden without any
explicit annotation?

-- 
Ed Schouten 
Nuxi, 's-Hertogenbosch, the Netherlands
KvK-nr.: 62051717
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303046 - head/lib/libc/locale

2016-07-19 Thread Pedro Giffuni

Hi;

On 07/19/16 15:46, Ed Schouten wrote:

Hi Pedro,

2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni :

Author: pfg
Date: Tue Jul 19 20:22:13 2016
New Revision: 303046
URL: https://svnweb.freebsd.org/changeset/base/303046

Log:
  libc: tag the Rune initialization function prototypes visibility as hidden.


How does this interact with symbol versioning/mapping? Wouldn't our C
library's symbol map already make these symbols hidden without any
explicit annotation?



It shouldn't hurt at all, this is not the first use that we make of the 
visibility attributes in libc. I do notice we tend to put them at the

end of the prototype, while I followed the Apple notation of setting
them in front. No idea if that is worthwhile to change.

It is true that these symbols should already be hidden but in the case
some port is using -fvisibility= compiler flag this will prevent the
symbols from getting exported by accident.

Pedro.

___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303046 - head/lib/libc/locale

2016-07-19 Thread Jilles Tjoelker
On Tue, Jul 19, 2016 at 10:46:36PM +0200, Ed Schouten wrote:
> 2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni :
> > Author: pfg
> > Date: Tue Jul 19 20:22:13 2016
> > New Revision: 303046
> > URL: https://svnweb.freebsd.org/changeset/base/303046

> > Log:
> >   libc: tag the Rune initialization function prototypes visibility
> >   as hidden.

> How does this interact with symbol versioning/mapping? Wouldn't our C
> library's symbol map already make these symbols hidden without any
> explicit annotation?

Trying to export (using a version script) a symbol with hidden
visibility attribute is an error, but GNU ld might accept it and fix it
up using text relocations or by not exporting the symbol.

Although both version scripts and visibility attributes can be used to
prevent exporting symbols, the goals are different. The goal of version
scripts is to enforce that no symbol is exported that is not in the
version script. The goal of visibility attributes is to optimize
performance and code size.

For example, on i386, a function without visibility attributes that is
not exported is called directly but still has %ebx set up for the PLT
entry. This not only adds extra instructions and stack usage but also
prevents tail calls (clang called the GOT entry indirectly for a while
to allow tail calls but this was removed because some code depended on
lazy resolution which requires PLT entries).

-- 
Jilles Tjoelker
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303046 - head/lib/libc/locale

2016-07-19 Thread Pedro Giffuni



On 07/19/16 16:22, Pedro Giffuni wrote:

Hi;

On 07/19/16 15:46, Ed Schouten wrote:

Hi Pedro,

2016-07-19 22:22 GMT+02:00 Pedro F. Giffuni :

Author: pfg
Date: Tue Jul 19 20:22:13 2016
New Revision: 303046
URL: https://svnweb.freebsd.org/changeset/base/303046

Log:
  libc: tag the Rune initialization function prototypes visibility as
hidden.


How does this interact with symbol versioning/mapping? Wouldn't our C
library's symbol map already make these symbols hidden without any
explicit annotation?



It shouldn't hurt at all, this is not the first use that we make of the
visibility attributes in libc. I do notice we tend to put them at the
end of the prototype, while I followed the Apple notation of setting
them in front. No idea if that is worthwhile to change.

It is true that these symbols should already be hidden but in the case
some port is using -fvisibility= compiler flag this will prevent the
symbols from getting exported by accident.



Hmm... actually, you probably can't unhide the regular functions with
-fvisibility. It just doesn't hurt to have the extra insurance, plus
it's generally not wrong to be compatible with Apple ;).

Pedro.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303047 - head/usr.bin/sed

2016-07-19 Thread Pedro F. Giffuni
Author: pfg
Date: Tue Jul 19 22:56:40 2016
New Revision: 303047
URL: https://svnweb.freebsd.org/changeset/base/303047

Log:
  sed(1):   Assorted cleanups and simplifications.
  
  Const-ify several variables, make it build cleanly with WARNS level 5.
  
  Submitted by: mi
  PR:   195929
  MFC after:1 month

Modified:
  head/usr.bin/sed/Makefile
  head/usr.bin/sed/compile.c
  head/usr.bin/sed/defs.h
  head/usr.bin/sed/extern.h
  head/usr.bin/sed/main.c
  head/usr.bin/sed/misc.c
  head/usr.bin/sed/process.c

Modified: head/usr.bin/sed/Makefile
==
--- head/usr.bin/sed/Makefile   Tue Jul 19 20:22:13 2016(r303046)
+++ head/usr.bin/sed/Makefile   Tue Jul 19 22:56:40 2016(r303047)
@@ -6,7 +6,7 @@
 PROG=  sed
 SRCS=  compile.c main.c misc.c process.c
 
-WARNS?=2
+WARNS?=5
 
 .if ${MK_TESTS} != "no"
 SUBDIR+= tests

Modified: head/usr.bin/sed/compile.c
==
--- head/usr.bin/sed/compile.c  Tue Jul 19 20:22:13 2016(r303046)
+++ head/usr.bin/sed/compile.c  Tue Jul 19 22:56:40 2016(r303047)
@@ -64,21 +64,21 @@ static struct labhash {
int lh_ref;
 } *labels[LHSZ];
 
-static char *compile_addr(char *, struct s_addr *);
-static char *compile_ccl(char **, char *);
-static char *compile_delimited(char *, char *, int);
-static char *compile_flags(char *, struct s_subst *);
-static regex_t  *compile_re(char *, int);
-static char *compile_subst(char *, struct s_subst *);
-static char *compile_text(void);
-static char *compile_tr(char *, struct s_tr **);
+static const char   *compile_addr(const char *, struct s_addr *);
+static   char   *compile_ccl(const char **, char *);
+static const char   *compile_delimited(const char *, char *, int);
+static const char   *compile_flags(const char *, struct s_subst *);
+static const regex_t*compile_re(const char *, int);
+static const char   *compile_subst(const char *, struct s_subst *);
+static   char   *compile_text(size_t *);
+static const char   *compile_tr(const char *, struct s_tr **);
 static struct s_command
**compile_stream(struct s_command **);
-static char *duptoeol(char *, const char *);
+static char *duptoeol(const char *, const char *, size_t *);
 static void  enterlabel(struct s_command *);
 static struct s_command
-*findlabel(char *);
-static void  fixuplabel(struct s_command *, struct s_command *);
+*findlabel(const char *);
+static void  fixuplabel(struct s_command *, const struct s_command *);
 static void  uselabel(void);
 
 /*
@@ -144,17 +144,20 @@ compile(void)
err(1, "malloc");
 }
 
-#define EATSPACE() do {
\
-   if (p)  \
-   while (*p && isspace((unsigned char)*p))\
-   p++;\
+#defineEATSPACE() do { \
+   while (*p && isspace((unsigned char)*p))\
+   p++;\
+   } while (0)
+
+#defineEATSPACEN() do {\
+   while (*p && *p != '\n' && isspace((unsigned char)*p))  \
+   p++;\
} while (0)
 
 static struct s_command **
 compile_stream(struct s_command **link)
 {
-   char *p;
-   static char lbuf[_POSIX2_LINE_MAX + 1]; /* To save stack */
+   const char *p;
struct s_command *cmd, *cmd2, *stack;
struct s_format *fp;
char re[_POSIX2_LINE_MAX + 1];
@@ -162,22 +165,22 @@ compile_stream(struct s_command **link)
 
stack = NULL;
for (;;) {
-   if ((p = cu_fgets(lbuf, sizeof(lbuf), NULL)) == NULL) {
+   if ((p = cu_fgets(NULL)) == NULL) {
if (stack != NULL)
errx(1, "%lu: %s: unexpected EOF (pending }'s)",
linenum, fname);
return (link);
}
 
-semicolon: EATSPACE();
-   if (p) {
-   if (*p == '#' || *p == '\0')
-   continue;
-   else if (*p == ';') {
-   p++;
-   goto semicolon;
-   }
+semicolon: EATSPACEN();
+   switch (*p) {
+   case '#': case '\0': case '\n':
+   continue;   /* to next command-unit */
+   case ';':
+   p++;
+   goto semicolon;
}
+

svn commit: r303050 - in head/sys: cddl/dev/dtrace/amd64 cddl/dev/dtrace/i386 cddl/dev/dtrace/x86 conf

2016-07-19 Thread Mark Johnston
Author: markj
Date: Wed Jul 20 00:02:10 2016
New Revision: 303050
URL: https://svnweb.freebsd.org/changeset/base/303050

Log:
  Merge {amd64,i386}/instr_size.c into x86_instr_size.c.
  
  Also reduce the diff between us and upstream: the input data model will
  always be DATAMODEL_NATIVE because of a bug (p_model is never set but is
  always initialized to 0), so we don't need to override the caller anyway.
  This change is also necessary to support the pid provider for 32-bit
  processes on amd64.
  
  MFC after:2 weeks

Added:
  head/sys/cddl/dev/dtrace/x86/instr_size.c
 - copied, changed from r303049, head/sys/cddl/dev/dtrace/i386/instr_size.c
Deleted:
  head/sys/cddl/dev/dtrace/amd64/instr_size.c
  head/sys/cddl/dev/dtrace/i386/instr_size.c
Modified:
  head/sys/conf/files.amd64
  head/sys/conf/files.i386

Copied and modified: head/sys/cddl/dev/dtrace/x86/instr_size.c (from r303049, 
head/sys/cddl/dev/dtrace/i386/instr_size.c)
==
--- head/sys/cddl/dev/dtrace/i386/instr_size.c  Tue Jul 19 23:25:45 2016
(r303049, copy source)
+++ head/sys/cddl/dev/dtrace/x86/instr_size.c   Wed Jul 20 00:02:10 2016
(r303050)
@@ -44,6 +44,9 @@
 #include 
 #include 
 #else
+#include 
+#include 
+
 typedefu_int   model_t;
 #defineDATAMODEL_NATIVE0
 int dtrace_instr_size(uchar_t *);
@@ -104,9 +107,7 @@ dtrace_dis_isize(uchar_t *instr, dis_isi
dis86_t x;
uint_t mode = SIZE32;
 
-#ifdef illumos
mode = (model == DATAMODEL_LP64) ? SIZE64 : SIZE32;
-#endif
 
x.d86_data = (void **)&instr;
x.d86_get_byte = dtrace_dis_get_byte;

Modified: head/sys/conf/files.amd64
==
--- head/sys/conf/files.amd64   Tue Jul 19 23:25:45 2016(r303049)
+++ head/sys/conf/files.amd64   Wed Jul 20 00:02:10 2016(r303050)
@@ -142,7 +142,7 @@ cddl/dev/dtrace/amd64/dtrace_asm.S  opt
 cddl/dev/dtrace/amd64/dtrace_subr.coptional dtrace 
compile-with "${DTRACE_C}"
 cddl/dev/fbt/x86/fbt_isa.c optional dtrace_fbt | 
dtraceall compile-with "${FBT_C}"
 cddl/dev/dtrace/x86/dis_tables.c   optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
-cddl/dev/dtrace/amd64/instr_size.c optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
+cddl/dev/dtrace/x86/instr_size.c   optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
 crypto/aesni/aeskeys_amd64.S   optional aesni
 crypto/aesni/aesni.c   optional aesni
 aesni_ghash.o  optional aesni  \

Modified: head/sys/conf/files.i386
==
--- head/sys/conf/files.i386Tue Jul 19 23:25:45 2016(r303049)
+++ head/sys/conf/files.i386Wed Jul 20 00:02:10 2016(r303050)
@@ -83,7 +83,7 @@ cddl/dev/dtrace/i386/dtrace_asm.S opti
 cddl/dev/dtrace/i386/dtrace_subr.c optional dtrace 
compile-with "${DTRACE_C}"
 cddl/dev/fbt/x86/fbt_isa.c optional dtrace_fbt | 
dtraceall compile-with "${FBT_C}"
 cddl/dev/dtrace/x86/dis_tables.c   optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
-cddl/dev/dtrace/i386/instr_size.c  optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
+cddl/dev/dtrace/x86/instr_size.c   optional dtrace_fbt | 
dtraceall compile-with "${DTRACE_C}"
 compat/linprocfs/linprocfs.c   optional linprocfs
 compat/linsysfs/linsysfs.c optional linsysfs
 compat/linux/linux_event.c optional compat_linux
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303051 - head/usr.bin/mandoc

2016-07-19 Thread Bryan Drewery
Author: bdrewery
Date: Wed Jul 20 00:06:03 2016
New Revision: 303051
URL: https://svnweb.freebsd.org/changeset/base/303051

Log:
  Only build makewhatis(1)/apropos(1) with MAN_UTILS.
  
  This is what src.conf(5) documents and is what the older non-mandoc
  versions respected.
  
  Sponsored by: EMC / Isilon Storage Division

Modified:
  head/usr.bin/mandoc/Makefile

Modified: head/usr.bin/mandoc/Makefile
==
--- head/usr.bin/mandoc/MakefileWed Jul 20 00:02:10 2016
(r303050)
+++ head/usr.bin/mandoc/MakefileWed Jul 20 00:06:03 2016
(r303051)
@@ -8,7 +8,7 @@ MDOCMLDIR=  ${.CURDIR}/../../contrib/mdoc
 PROG=  mandoc
 MAN=   mandoc.1 eqn.7 mandoc_char.7 tbl.7 man.7 mdoc.7 # roff.7
 MLINKS=mandoc.1 mdocml.1
-.if ${MK_MANDOCDB} != no
+.if ${MK_MANDOCDB} != no && ${MK_MAN_UTILS} != no
 MAN+=  apropos.1 makewhatis.8
 MLINKS+=   apropos.1 whatis.1
 LINKS= ${BINDIR}/mandoc ${BINDIR}/whatis \
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303052 - in head/sys: sys vm

2016-07-19 Thread Mark Johnston
Author: markj
Date: Wed Jul 20 00:09:22 2016
New Revision: 303052
URL: https://svnweb.freebsd.org/changeset/base/303052

Log:
  Make vm_pageout_wakeup_thresh a u_int rather than an int.
  
  It's a threshold for v_free_count, which is of type u_int. This also lets
  us get rid of a cast in vm_paging_needed().
  
  Reviewed by:  alc
  MFC after:1 week

Modified:
  head/sys/sys/vmmeter.h
  head/sys/vm/vm_pageout.c

Modified: head/sys/sys/vmmeter.h
==
--- head/sys/sys/vmmeter.h  Wed Jul 20 00:06:03 2016(r303051)
+++ head/sys/sys/vmmeter.h  Wed Jul 20 00:09:22 2016(r303052)
@@ -117,7 +117,7 @@ struct vmmeter {
 
 extern struct vmmeter vm_cnt;
 
-extern int vm_pageout_wakeup_thresh;
+extern u_int vm_pageout_wakeup_thresh;
 
 /*
  * Return TRUE if we are under our severe low-free-pages threshold
@@ -181,7 +181,7 @@ vm_paging_needed(void)
 {
 
return (vm_cnt.v_free_count + vm_cnt.v_cache_count <
-   (u_int)vm_pageout_wakeup_thresh);
+   vm_pageout_wakeup_thresh);
 }
 
 #endif

Modified: head/sys/vm/vm_pageout.c
==
--- head/sys/vm/vm_pageout.cWed Jul 20 00:06:03 2016(r303051)
+++ head/sys/vm/vm_pageout.cWed Jul 20 00:09:22 2016(r303052)
@@ -157,7 +157,7 @@ SYSINIT(vmdaemon, SI_SUB_KTHREAD_VM, SI_
 
 
 int vm_pageout_deficit;/* Estimated number of pages deficit */
-int vm_pageout_wakeup_thresh;
+u_int vm_pageout_wakeup_thresh;
 static int vm_pageout_oom_seq = 12;
 bool vm_pageout_wanted;/* Event on which pageout daemon sleeps 
*/
 bool vm_pages_needed;  /* Are threads waiting for free pages? */
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303059 - head/sys/vm

2016-07-19 Thread Mark Johnston
Author: markj
Date: Wed Jul 20 01:01:50 2016
New Revision: 303059
URL: https://svnweb.freebsd.org/changeset/base/303059

Log:
  Release the second critical section in uma_zfree_arg() slightly earlier.
  
  It is only needed when removing a full bucket from the per-CPU cache. The
  bucket cache (uz_buckets) is protected by the zone mutex and thus the
  critical section can be released before inserting into that list.
  
  MFC after:1 week

Modified:
  head/sys/vm/uma_core.c

Modified: head/sys/vm/uma_core.c
==
--- head/sys/vm/uma_core.c  Wed Jul 20 00:53:21 2016(r303058)
+++ head/sys/vm/uma_core.c  Wed Jul 20 01:01:50 2016(r303059)
@@ -2744,6 +2744,8 @@ zfree_start:
goto zfree_start;
}
cache->uc_freebucket = NULL;
+   /* We are no longer associated with this CPU. */
+   critical_exit();
 
/* Can we throw this on the zone full list? */
if (bucket != NULL) {
@@ -2756,9 +2758,6 @@ zfree_start:
LIST_INSERT_HEAD(&zone->uz_buckets, bucket, ub_link);
}
 
-   /* We are no longer associated with this CPU. */
-   critical_exit();
-
/*
 * We bump the uz count when the cache size is insufficient to
 * handle the working set.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Jan Beich
Ed Maste  writes:

> +.It Sy Architecture Ta Sy Page Sizes
> +.It amd64   Ta 4K, 2M, 1G

Does FreeBSD support 1G pages nowadays?

$ sysctl hw.pagesizes
hw.pagesizes: 4096 2097152 0

$ dmesg | fgrep -i 1gb
  AMD Features=0x2c100800

> +.Ss Predefined Macros
> +The compiler provides a number of predefined macros.
> +Some of these provide architecture-specific details and are explained below.
> +Other macros, including those required by the language standard, are not
> +included here.
[...]
> +cc -x c -Dm -E /dev/null

Typo: -Dm vs. -dM

> +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN .

Are these really compiler macros? I think,  defines them.

$ clang38 -x c -dM -E /dev/null | fgrep ENDIAN
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __LITTLE_ENDIAN__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412

$ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
#define __ORDER_PDP_ENDIAN__ 3412
#define __ORDER_BIG_ENDIAN__ 4321
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__


signature.asc
Description: PGP signature


svn commit: r303061 - head/contrib/llvm/projects/libunwind/include

2016-07-19 Thread Ed Maste
Author: emaste
Date: Wed Jul 20 03:13:02 2016
New Revision: 303061
URL: https://svnweb.freebsd.org/changeset/base/303061

Log:
  libunwind: Properly align _Unwind_Exception.
  
  _Unwind_Exception is required to be double word aligned.  GCC has
  interpreted this to mean "use the maximum useful alignment for the
  target" so follow that lead.
  
  Obtained from:LLVM review D22543

Modified:
  head/contrib/llvm/projects/libunwind/include/unwind.h

Modified: head/contrib/llvm/projects/libunwind/include/unwind.h
==
--- head/contrib/llvm/projects/libunwind/include/unwind.h   Wed Jul 20 
02:21:54 2016(r303060)
+++ head/contrib/llvm/projects/libunwind/include/unwind.h   Wed Jul 20 
03:13:02 2016(r303061)
@@ -128,7 +128,7 @@ struct _Unwind_Exception {
   // added for binary compatibility.
   uint32_t reserved[3];
 #endif
-};
+} __attribute__((__aligned__));
 
 typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
 (int version,
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303062 - head/contrib/openresolv

2016-07-19 Thread Pedro F. Giffuni
Author: pfg
Date: Wed Jul 20 03:52:04 2016
New Revision: 303062
URL: https://svnweb.freebsd.org/changeset/base/303062

Log:
  MFV r298167, r300962, r303048:
  openresolv: update to version 3.8.1.
  
  Among the new features it attempts to support alternative init systems.
  
  MFC after:1 month

Modified:
  head/contrib/openresolv/Makefile
  head/contrib/openresolv/configure
  head/contrib/openresolv/dnsmasq.in
  head/contrib/openresolv/libc.in
  head/contrib/openresolv/named.in
  head/contrib/openresolv/resolvconf.8.in
  head/contrib/openresolv/resolvconf.conf.5.in
  head/contrib/openresolv/resolvconf.in
  head/contrib/openresolv/unbound.in
Directory Properties:
  head/contrib/openresolv/   (props changed)

Modified: head/contrib/openresolv/Makefile
==
--- head/contrib/openresolv/MakefileWed Jul 20 03:13:02 2016
(r303061)
+++ head/contrib/openresolv/MakefileWed Jul 20 03:52:04 2016
(r303062)
@@ -1,5 +1,4 @@
 PKG=   openresolv
-VERSION=   3.7.3
 
 # Nasty hack so that make clean works without configure being run
 _CONFIG_MK!=   test -e config.mk && echo config.mk || echo config-null.mk
@@ -10,14 +9,12 @@ SBINDIR?=/sbin
 SYSCONFDIR?=   /etc
 LIBEXECDIR?=   /libexec/resolvconf
 VARDIR?=   /var/run/resolvconf
-RCDIR?=/etc/rc.d
-RESTARTCMD?=   if ${RCDIR}/\1 status >/dev/null 2>\&1; then \
-   ${RCDIR}/\1 restart; \
-   fi
 
 INSTALL?=  install
 SED?=  sed
 
+VERSION!=  ${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in
+
 BINMODE?=  0755
 DOCMODE?=  0644
 MANMODE?=  0444
@@ -33,7 +30,9 @@ SED_SYSCONFDIR=   -e 's:@SYSCONFDIR@:${SY
 SED_LIBEXECDIR=-e 's:@LIBEXECDIR@:${LIBEXECDIR}:g'
 SED_VARDIR=-e 's:@VARDIR@:${VARDIR}:g'
 SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g'
-SED_RESTARTCMD=-e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD}:g'
+SED_RESTARTCMD=-e 's:@RESTARTCMD@:${RESTARTCMD}:g'
+SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g'
+SED_STATUSARG= -e 's:@STATUSARG@:${STATUSARG}:g'
 
 DISTPREFIX?=   ${PKG}-${VERSION}
 DISTFILEGZ?=   ${DISTPREFIX}.tar.gz
@@ -44,9 +43,10 @@ FOSSILID?=   current
 
 all: ${TARGET}
 
-.in:
+.in: Makefile ${CONFIG_MK}
${SED}  ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \
-   ${SED_VARDIR} ${SED_RCDIR} ${SED_RESTARTCMD} \
+   ${SED_VARDIR} \
+   ${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \
$< > $@
 
 clean:

Modified: head/contrib/openresolv/configure
==
--- head/contrib/openresolv/configure   Wed Jul 20 03:13:02 2016
(r303061)
+++ head/contrib/openresolv/configure   Wed Jul 20 03:52:04 2016
(r303062)
@@ -8,6 +8,7 @@ HOST=
 TARGET=
 RESTARTCMD=
 RCDIR=
+STATUSARG=
 
 for x do
opt=${x%%=*}
@@ -33,6 +34,8 @@ for x do
--target) TARGET=$var;;
--libdir) LIBDIR=$var;;
--restartcmd) RESTARTCMD=$var;;
+   --rcdir) RCDIR=$var;;
+   --statusarg) STATUSARG=$var;;
--includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";;
--datadir|--infodir) ;; # ignore autotools
--disable-maintainer-mode|--disable-dependency-tracking) ;;
@@ -117,7 +120,17 @@ echo "Configuring openresolv for ... $OS
 rm -rf $CONFIG_MK
 echo "# $OS" >$CONFIG_MK
 
-for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do
+# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled
+# regardless of if it's not running.
+# So we force onestatus to work around this silly bug.
+if [ -z "$STATUSARG" ]; then
+   case "$OS" in
+   freebsd*)   STATUSARG="onestatus";;
+   esac
+fi
+
+for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG
+do
eval v=\$$x
# Make files look nice for import
l=$((10 - ${#x}))
@@ -126,96 +139,6 @@ for x in SYSCONFDIR SBINDIR LIBEXECDIR V
echo "$x=$t $v" >>$CONFIG_MK
 done
 
-if [ -z "$RESTARTCMD" ]; then
-   printf "Checking for systemd ... "
-   if [ -x /bin/systemctl ]; then
-   RESTARTCMD="/bin/systemctl try-restart \1"
-   echo "yes"
-   elif [ -x /usr/bin/systemctl ]; then
-   RESTARTCMD="/usr/bin/systemctl try-restart \1"
-   echo "yes"
-   else
-   echo "no"
-   fi
-fi
-
-# Arch upgraded to systemd, so this check has to be just after systemd
-# but higher than the others
-if [ -z "$RESTARTCMD" ]; then
-   printf "Checking for Arch ... "
-   if [ -e /etc/arch-release -a -d /etc/rc.d ]; then
-   RCDIR=/etc/rc.d
-   RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 
restart"
-   echo "yes"
-   else
-   echo "no"
-   fi
-fi
-
-if [ -z "$RESTARTCMD" ];

Re: svn commit: r303062 - head/contrib/openresolv

2016-07-19 Thread Pedro Giffuni



On 07/19/16 22:52, Pedro F. Giffuni wrote:

Author: pfg
Date: Wed Jul 20 03:52:04 2016
New Revision: 303062
URL: https://svnweb.freebsd.org/changeset/base/303062

Log:
  MFV r298167, r300962, r303048:
  openresolv: update to version 3.8.1.

  Among the new features it attempts to support alternative init systems.

  MFC after:1 month



In case it's not clear ... While I am running this and I don't see any
issue, I don't have sufficient confidence yet to merge it into a release.

Pedro.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Konstantin Belousov
On Wed, Jul 20, 2016 at 05:01:03AM +0200, Jan Beich wrote:
> Ed Maste  writes:
> 
> > +.It Sy Architecture Ta Sy Page Sizes
> > +.It amd64   Ta 4K, 2M, 1G
> 
> Does FreeBSD support 1G pages nowadays?
Define what do you mean by 'support'.  The direct map is mapped with 1G
pages where possible, and the mappings are demoted when page attributes
change.

Neither kernel nor userspace mappings are promoted to 1G superpages
in the current pmap.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303063 - head/share/misc

2016-07-19 Thread Stephen J. Kiernan
Author: stevek
Date: Wed Jul 20 04:25:09 2016
New Revision: 303063
URL: https://svnweb.freebsd.org/changeset/base/303063

Log:
  Add myself (stevek) as a src committer and mentor (sjg) to committers-src.dot
  
  Approved by:  sjg (mentor)

Modified:
  head/share/misc/committers-src.dot

Modified: head/share/misc/committers-src.dot
==
--- head/share/misc/committers-src.dot  Wed Jul 20 03:52:04 2016
(r303062)
+++ head/share/misc/committers-src.dot  Wed Jul 20 04:25:09 2016
(r303063)
@@ -303,6 +303,7 @@ sobomax [label="Maxim Sobolev\nsobomax@F
 sos [label="Soren Schmidt\n...@freebsd.org\n/??/??"]
 sson [label="Stacey Son\ns...@freebsd.org\n2008/07/08"]
 stas [label="Stanislav Sedov\ns...@freebsd.org\n2008/08/22"]
+stevek [label="Stephen J. Kiernan\nste...@freebsd.org\n2016/07/18"]
 suz [label="SUZUKI Shinsuke\n...@freebsd.org\n2002/03/26"]
 syrinx [label="Shteryana Shopova\nsyr...@freebsd.org\n2006/10/07"]
 takawata [label="Takanori Watanabe\ntakaw...@freebsd.org\n2000/07/06"]
@@ -754,6 +755,7 @@ shin -> ume
 simon -> benl
 
 sjg -> phil
+sjg -> stevek
 
 sos -> marcel
 
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303066 - in head/sys/dev/hyperv: include netvsc

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 05:03:04 2016
New Revision: 303066
URL: https://svnweb.freebsd.org/changeset/base/303066

Log:
  hyperv/vmbus: Get rid of unnecessary definition.
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7240

Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/netvsc/hv_net_vsc.h
  head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  head/sys/dev/hyperv/netvsc/hv_rndis_filter.h

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 04:49:01 2016
(r303065)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:03:04 2016
(r303066)
@@ -58,8 +58,6 @@
 #include 
 #include 
 
-typedef uint8_thv_bool_uint8_t;
-
 #define HV_S_OK0x
 #define HV_E_FAIL  0x80004005
 #define HV_ERROR_NOT_SUPPORTED 0x80070032
@@ -90,8 +88,6 @@ struct hyperv_guid {
 
 inthyperv_guid2str(const struct hyperv_guid *, char *, size_t);
 
-#define HW_MACADDR_LEN 6
-
 /*
  * Common defines for Hyper-V ICs
  */

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.h
==
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 04:49:01 2016
(r303065)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.h Wed Jul 20 05:03:04 2016
(r303066)
@@ -53,6 +53,7 @@
 #include 
 #include 
 
+#include 
 #include 
 #include 
 
@@ -1065,12 +1066,12 @@ typedef struct netvsc_dev_ {
nvsp_msgchannel_init_packet;
 
nvsp_msgrevoke_packet;
-   /*uint8_t   hw_mac_addr[HW_MACADDR_LEN];*/
+   /*uint8_t   hw_mac_addr[ETHER_ADDR_LEN];*/
 
/* Holds rndis device info */
void*extension;
 
-   hv_bool_uint8_t destroy;
+   uint8_t destroy;
/* Negotiated NVSP version */
uint32_tnvsp_version;
 
@@ -1109,7 +1110,7 @@ typedef void (*pfn_on_send_rx_completion
 #endif
 
 typedef struct netvsc_packet_ {
-   hv_bool_uint8_tis_data_pkt;  /* One byte */
+   uint8_tis_data_pkt;  /* One byte */
uint16_t   vlan_tci;
uint32_t status;
 
@@ -1140,7 +1141,7 @@ typedef struct netvsc_packet_ {
 
 typedef struct {
uint8_t mac_addr[6];  /* Assumption unsigned long */
-   hv_bool_uint8_t link_state;
+   uint8_t link_state;
 } netvsc_device_info;
 
 #ifndef HN_USE_TXDESC_BUFRING

Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
==
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.cWed Jul 20 04:49:01 
2016(r303065)
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.cWed Jul 20 05:03:04 
2016(r303066)
@@ -699,7 +699,7 @@ cleanup:
 static inline int
 hv_rf_query_device_mac(rndis_device *device)
 {
-   uint32_t size = HW_MACADDR_LEN;
+   uint32_t size = ETHER_ADDR_LEN;
 
return (hv_rf_query_device(device,
RNDIS_OID_802_3_PERMANENT_ADDRESS, device->hw_mac_addr, &size));
@@ -1126,7 +1126,7 @@ hv_rf_on_device_add(struct hn_softc *sc,
"hv_rf_send_offload_request failed, ret=%d\n", ret);
}

-   memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, HW_MACADDR_LEN);
+   memcpy(dev_info->mac_addr, rndis_dev->hw_mac_addr, ETHER_ADDR_LEN);
 
hv_rf_query_device_link_status(rndis_dev);


Modified: head/sys/dev/hyperv/netvsc/hv_rndis_filter.h
==
--- head/sys/dev/hyperv/netvsc/hv_rndis_filter.hWed Jul 20 04:49:01 
2016(r303065)
+++ head/sys/dev/hyperv/netvsc/hv_rndis_filter.hWed Jul 20 05:03:04 
2016(r303066)
@@ -31,6 +31,8 @@
 #ifndef __HV_RNDIS_FILTER_H__
 #define __HV_RNDIS_FILTER_H__
 
+#include 
+#include 
 
 /*
  * Defines
@@ -103,7 +105,7 @@ typedef struct rndis_device_ {
 
STAILQ_HEAD(RQ, rndis_request_) myrequest_list;
 
-   uint8_t hw_mac_addr[HW_MACADDR_LEN];
+   uint8_t hw_mac_addr[ETHER_ADDR_LEN];
 } rndis_device;
 
 /*
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303033 - head/share/man/man7

2016-07-19 Thread Warner Losh
On Tue, Jul 19, 2016 at 9:01 PM, Jan Beich  wrote:
> Ed Maste  writes:
>
>> +.It Sy Architecture Ta Sy Page Sizes
>> +.It amd64   Ta 4K, 2M, 1G
>
> Does FreeBSD support 1G pages nowadays?
>
> $ sysctl hw.pagesizes
> hw.pagesizes: 4096 2097152 0
>
> $ dmesg | fgrep -i 1gb
>   AMD Features=0x2c100800
>
>> +.Ss Predefined Macros
>> +The compiler provides a number of predefined macros.
>> +Some of these provide architecture-specific details and are explained below.
>> +Other macros, including those required by the language standard, are not
>> +included here.
> [...]
>> +cc -x c -Dm -E /dev/null
>
> Typo: -Dm vs. -dM
>
>> +.It Dv BYTE_ORDER Ta Either Dv BIG_ENDIAN or Dv LITTLE_ENDIAN .
>
> Are these really compiler macros? I think,  defines them.

sys/endian.h defines them (and it implements that by including machine/endian.h
in part).

> $ clang38 -x c -dM -E /dev/null | fgrep ENDIAN
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __LITTLE_ENDIAN__ 1
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __ORDER_LITTLE_ENDIAN__ 1234
> #define __ORDER_PDP_ENDIAN__ 3412
>
> $ gcc5 -x c -dM -E /dev/null | fgrep ENDIAN
> #define __ORDER_LITTLE_ENDIAN__ 1234
> #define __FLOAT_WORD_ORDER__ __ORDER_LITTLE_ENDIAN__
> #define __ORDER_PDP_ENDIAN__ 3412
> #define __ORDER_BIG_ENDIAN__ 4321
> #define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__

This is why they are defined in machine/endian.h. Compilers have been
somewhat inconsistent in the past.

Warner
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303067 - in head/sys/dev/hyperv: include utilities

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 05:16:23 2016
New Revision: 303067
URL: https://svnweb.freebsd.org/changeset/base/303067

Log:
  hyperv/vmbus: Move IC register definition to Hyper-V utilities
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7241

Added:
  head/sys/dev/hyperv/utilities/hv_utilreg.h   (contents, props changed)
Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/utilities/hv_heartbeat.c
  head/sys/dev/hyperv/utilities/hv_kvp.c
  head/sys/dev/hyperv/utilities/hv_shutdown.c
  head/sys/dev/hyperv/utilities/hv_timesync.c
  head/sys/dev/hyperv/utilities/hv_util.c

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:03:04 2016
(r303066)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:16:23 2016
(r303067)
@@ -58,11 +58,6 @@
 #include 
 #include 
 
-#define HV_S_OK0x
-#define HV_E_FAIL  0x80004005
-#define HV_ERROR_NOT_SUPPORTED 0x80070032
-#define HV_ERROR_MACHINE_LOCKED0x800704F7
-
 /*
  * VMBUS version is 32 bit, upper 16 bit for major_number and lower
  * 16 bit for minor_number.
@@ -88,60 +83,6 @@ struct hyperv_guid {
 
 inthyperv_guid2str(const struct hyperv_guid *, char *, size_t);
 
-/*
- * Common defines for Hyper-V ICs
- */
-#define HV_ICMSGTYPE_NEGOTIATE 0
-#define HV_ICMSGTYPE_HEARTBEAT 1
-#define HV_ICMSGTYPE_KVPEXCHANGE   2
-#define HV_ICMSGTYPE_SHUTDOWN  3
-#define HV_ICMSGTYPE_TIMESYNC  4
-#define HV_ICMSGTYPE_VSS   5
-
-#define HV_ICMSGHDRFLAG_TRANSACTION1
-#define HV_ICMSGHDRFLAG_REQUEST2
-#define HV_ICMSGHDRFLAG_RESPONSE   4
-
-typedef struct hv_vmbus_pipe_hdr {
-   uint32_t flags;
-   uint32_t msgsize;
-} __packed hv_vmbus_pipe_hdr;
-
-typedef struct hv_vmbus_ic_version {
-   uint16_t major;
-   uint16_t minor;
-} __packed hv_vmbus_ic_version;
-
-typedef struct hv_vmbus_icmsg_hdr {
-   hv_vmbus_ic_version icverframe;
-   uint16_ticmsgtype;
-   hv_vmbus_ic_version icvermsg;
-   uint16_ticmsgsize;
-   uint32_tstatus;
-   uint8_t ictransaction_id;
-   uint8_t icflags;
-   uint8_t reserved[2];
-} __packed hv_vmbus_icmsg_hdr;
-
-typedef struct hv_vmbus_icmsg_negotiate {
-   uint16_ticframe_vercnt;
-   uint16_ticmsg_vercnt;
-   uint32_treserved;
-   hv_vmbus_ic_version icversion_data[1]; /* any size array */
-} __packed hv_vmbus_icmsg_negotiate;
-
-typedef struct hv_vmbus_shutdown_msg_data {
-   uint32_treason_code;
-   uint32_ttimeout_seconds;
-   uint32_tflags;
-   uint8_t display_message[2048];
-} __packed hv_vmbus_shutdown_msg_data;
-
-typedef struct hv_vmbus_heartbeat_msg_data {
-   uint64_tseq_num;
-   uint32_treserved[8];
-} __packed hv_vmbus_heartbeat_msg_data;
-
 typedef struct {
/*
 * offset in bytes from the start of ring data below

Modified: head/sys/dev/hyperv/utilities/hv_heartbeat.c
==
--- head/sys/dev/hyperv/utilities/hv_heartbeat.cWed Jul 20 05:03:04 
2016(r303066)
+++ head/sys/dev/hyperv/utilities/hv_heartbeat.cWed Jul 20 05:16:23 
2016(r303067)
@@ -36,6 +36,7 @@
 
 #include 
 #include 
+#include 
 #include "hv_util.h"
 #include "vmbus_if.h"
 

Modified: head/sys/dev/hyperv/utilities/hv_kvp.c
==
--- head/sys/dev/hyperv/utilities/hv_kvp.c  Wed Jul 20 05:03:04 2016
(r303066)
+++ head/sys/dev/hyperv/utilities/hv_kvp.c  Wed Jul 20 05:16:23 2016
(r303067)
@@ -65,6 +65,7 @@ __FBSDID("$FreeBSD$");
 
 #include 
 #include 
+#include 
 
 #include "hv_util.h"
 #include "unicode.h"

Modified: head/sys/dev/hyperv/utilities/hv_shutdown.c
==
--- head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:03:04 2016
(r303066)
+++ head/sys/dev/hyperv/utilities/hv_shutdown.c Wed Jul 20 05:16:23 2016
(r303067)
@@ -41,6 +41,7 @@
 
 #include 
 #include 
+#include 
 #include "hv_util.h"
 #include "vmbus_if.h"
 

Modified: head/sys/dev/hyperv/utilities/hv_timesync.c
==
--- head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:03:04 2016
(r303066)
+++ head/sys/dev/hyperv/utilities/hv_timesync.c Wed Jul 20 05:16:23 2016
(r303067)
@@ -41,6 +41,7 @@
 
 #include 
 #include 
+#include 
 

svn commit: r303068 - in head/sys/dev/hyperv: include netvsc storvsc vmbus

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 05:26:04 2016
New Revision: 303068
URL: https://svnweb.freebsd.org/changeset/base/303068

Log:
  hyperv/vmbus: Channel struct field rename
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7242

Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
  head/sys/dev/hyperv/vmbus/vmbus.c
  head/sys/dev/hyperv/vmbus/vmbus_chan.c

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:16:23 2016
(r303067)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:26:04 2016
(r303068)
@@ -117,7 +117,7 @@ typedef void(*vmbus_chan_callback_t)(vo
 
 typedef struct hv_vmbus_channel {
device_tch_dev;
-   struct vmbus_softc  *vmbus_sc;
+   struct vmbus_softc  *ch_vmbus;
uint32_tch_flags;   /* VMBUS_CHAN_FLAG_ */
uint32_tch_id;  /* channel id */
 
@@ -129,13 +129,13 @@ typedef struct hv_vmbus_channel {
uint32_tch_montrig_mask;/* MNF trig mask */
 
/*
-* send to parent
+* TX bufring; at the beginning of ch_bufring.
 */
-   hv_vmbus_ring_buffer_info   outbound;
+   hv_vmbus_ring_buffer_info   ch_txbr;
/*
-* receive from parent
+* RX bufring; immediately following ch_txbr.
 */
-   hv_vmbus_ring_buffer_info   inbound;
+   hv_vmbus_ring_buffer_info   ch_rxbr;
 
struct taskqueue*ch_tq;
struct task ch_task;
@@ -169,9 +169,9 @@ typedef struct hv_vmbus_channel {
/*
 * Driver private data
 */
-   void*hv_chan_priv1;
-   void*hv_chan_priv2;
-   void*hv_chan_priv3;
+   void*ch_dev_priv1;
+   void*ch_dev_priv2;
+   void*ch_dev_priv3;
 
void*ch_bufring;/* TX+RX bufrings */
struct hyperv_dma   ch_bufring_dma;

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
==
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:16:23 2016
(r303067)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:26:04 2016
(r303068)
@@ -50,7 +50,7 @@
 #include "hv_rndis_filter.h"
 
 /* priv1 and priv2 are consumed by the main driver */
-#define hv_chan_rdbuf  hv_chan_priv3
+#define ch_dev_rdbuf   ch_dev_priv3
 
 MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver");
 
@@ -644,7 +644,7 @@ void
 hv_nv_subchan_attach(struct hv_vmbus_channel *chan)
 {
 
-   chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
+   chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE,
NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0,
hv_nv_on_channel_callback, chan);
@@ -670,7 +670,7 @@ hv_nv_on_device_add(struct hn_softc *sc,
 
sema_init(&net_dev->channel_init_sema, 0, "netdev_sema");
 
-   chan->hv_chan_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
+   chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
 
/*
 * Open the channel
@@ -679,7 +679,7 @@ hv_nv_on_device_add(struct hn_softc *sc,
NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE,
NULL, 0, hv_nv_on_channel_callback, chan);
if (ret != 0) {
-   free(chan->hv_chan_rdbuf, M_NETVSC);
+   free(chan->ch_dev_rdbuf, M_NETVSC);
goto cleanup;
}
 
@@ -694,7 +694,7 @@ hv_nv_on_device_add(struct hn_softc *sc,
 
 close:
/* Now, we can close the channel safely */
-   free(chan->hv_chan_rdbuf, M_NETVSC);
+   free(chan->ch_dev_rdbuf, M_NETVSC);
vmbus_chan_close(chan);
 
 cleanup:
@@ -725,7 +725,7 @@ hv_nv_on_device_remove(struct hn_softc *
 
/* Now, we can close the channel safely */
 
-   free(sc->hn_prichan->hv_chan_rdbuf, M_NETVSC);
+   free(sc->hn_prichan->ch_dev_rdbuf, M_NETVSC);
vmbus_chan_close(sc->hn_prichan);
 
sema_destroy(&net_dev->channel_init_sema);
@@ -986,7 +986,7 @@ hv_nv_on_channel_callback(void *xchan)
if (net_dev == NULL)
return;
 
-   buffer = chan->hv_chan_rdbuf;
+   buffer = chan->ch_dev_rdbuf;
do {
struct vmbus_chanpkt_hdr *pkt = buffer;
  

svn commit: r303069 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 05:34:28 2016
New Revision: 303069
URL: https://svnweb.freebsd.org/changeset/base/303069

Log:
  hyperv/vmbus: Pass channel as the first argument for channel callback
  
  The prepares to kill device private fields in channel struct, which
  are not flexible and extensible.
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7243

Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
  head/sys/dev/hyperv/utilities/hv_heartbeat.c
  head/sys/dev/hyperv/utilities/hv_kvp.c
  head/sys/dev/hyperv/utilities/hv_shutdown.c
  head/sys/dev/hyperv/utilities/hv_timesync.c
  head/sys/dev/hyperv/utilities/hv_util.c
  head/sys/dev/hyperv/utilities/hv_util.h
  head/sys/dev/hyperv/vmbus/vmbus_chan.c

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:26:04 2016
(r303068)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:34:28 2016
(r303069)
@@ -113,7 +113,9 @@ typedef struct {
uint32_tring_data_size; /* ring_size */
 } hv_vmbus_ring_buffer_info;
 
-typedef void   (*vmbus_chan_callback_t)(void *);
+struct hv_vmbus_channel;
+
+typedef void   (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *);
 
 typedef struct hv_vmbus_channel {
device_tch_dev;

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
==
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:26:04 2016
(r303068)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:34:28 2016
(r303069)
@@ -57,7 +57,7 @@ MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper
 /*
  * Forward declarations
  */
-static void hv_nv_on_channel_callback(void *xchan);
+static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void 
*arg);
 static int  hv_nv_init_send_buffer_with_net_vsp(struct hn_softc *sc);
 static int  hv_nv_init_rx_buffer_with_net_vsp(struct hn_softc *);
 static int  hv_nv_destroy_send_buffer(netvsc_dev *net_dev);
@@ -647,7 +647,7 @@ hv_nv_subchan_attach(struct hv_vmbus_cha
chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE,
NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0,
-   hv_nv_on_channel_callback, chan);
+   hv_nv_on_channel_callback, NULL);
 }
 
 /*
@@ -677,7 +677,7 @@ hv_nv_on_device_add(struct hn_softc *sc,
 */
ret = vmbus_chan_open(chan,
NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE,
-   NULL, 0, hv_nv_on_channel_callback, chan);
+   NULL, 0, hv_nv_on_channel_callback, NULL);
if (ret != 0) {
free(chan->ch_dev_rdbuf, M_NETVSC);
goto cleanup;
@@ -973,9 +973,8 @@ hv_nv_send_table(struct hn_softc *sc, co
  * Net VSC on channel callback
  */
 static void
-hv_nv_on_channel_callback(void *xchan)
+hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void *arg __unused)
 {
-   struct hv_vmbus_channel *chan = xchan;
device_t dev = chan->ch_dev;
struct hn_softc *sc = device_get_softc(dev);
netvsc_dev *net_dev;

Modified: head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
==
--- head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.cWed Jul 20 
05:26:04 2016(r303068)
+++ head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.cWed Jul 20 
05:34:28 2016(r303069)
@@ -274,7 +274,7 @@ static int create_storvsc_request(union 
 static void storvsc_free_request(struct storvsc_softc *sc, struct 
hv_storvsc_request *reqp);
 static enum hv_storage_type storvsc_get_storage_type(device_t dev);
 static void hv_storvsc_rescan_target(struct storvsc_softc *sc);
-static void hv_storvsc_on_channel_callback(void *xchan);
+static void hv_storvsc_on_channel_callback(struct hv_vmbus_channel *chan, void 
*xsc);
 static void hv_storvsc_on_iocompletion( struct storvsc_softc *sc,
struct vstor_packet *vstor_packet,
struct hv_storvsc_request *request);
@@ -316,15 +316,13 @@ storvsc_subchan_attach(struct storvsc_so
 
memset(&props, 0, sizeof(props));
 
-   new_channel->ch_dev_priv1 = sc;
vmbus_chan_cpu_rr(new_channel);
ret = vmbus_chan_open(new_channel,
sc->hs_drv_props->drv_ringbuffer_size,
sc->hs_drv_props->drv_ringbuffer_size,
(void *)&props,
sizeof(struct vmstor_chan_props),
-   hv_storvsc_on_channel_callback,
-   new_channel);
+   hv_storvsc_on_channel_callback, sc);
 }
 

svn commit: r303070 - in head/sys/dev/hyperv: include netvsc

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 05:48:52 2016
New Revision: 303070
URL: https://svnweb.freebsd.org/changeset/base/303070

Log:
  hyperv/vmbus: Deprecate the device private data in channel struct
  
  They are neither flexible nor extensible.
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7244

Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/netvsc/hv_net_vsc.h
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  head/sys/dev/hyperv/netvsc/hv_rndis.h
  head/sys/dev/hyperv/netvsc/hv_rndis_filter.c
  head/sys/dev/hyperv/netvsc/hv_rndis_filter.h

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:34:28 2016
(r303069)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:48:52 2016
(r303070)
@@ -168,13 +168,6 @@ typedef struct hv_vmbus_channel {
TAILQ_ENTRY(hv_vmbus_channel)   ch_sublink; /* sub-channel link */
struct hv_vmbus_channel *ch_prichan;/* owner primary chan */
 
-   /*
-* Driver private data
-*/
-   void*ch_dev_priv1;
-   void*ch_dev_priv2;
-   void*ch_dev_priv3;
-
void*ch_bufring;/* TX+RX bufrings */
struct hyperv_dma   ch_bufring_dma;
uint32_tch_bufring_gpadl;

Modified: head/sys/dev/hyperv/netvsc/hv_net_vsc.c
==
--- head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:34:28 2016
(r303069)
+++ head/sys/dev/hyperv/netvsc/hv_net_vsc.c Wed Jul 20 05:48:52 2016
(r303070)
@@ -49,15 +49,13 @@
 #include "hv_rndis.h"
 #include "hv_rndis_filter.h"
 
-/* priv1 and priv2 are consumed by the main driver */
-#define ch_dev_rdbuf   ch_dev_priv3
-
 MALLOC_DEFINE(M_NETVSC, "netvsc", "Hyper-V netvsc driver");
 
 /*
  * Forward declarations
  */
-static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan, void 
*arg);
+static void hv_nv_on_channel_callback(struct hv_vmbus_channel *chan,
+void *xrxr);
 static int  hv_nv_init_send_buffer_with_net_vsp(struct hn_softc *sc);
 static int  hv_nv_init_rx_buffer_with_net_vsp(struct hn_softc *);
 static int  hv_nv_destroy_send_buffer(netvsc_dev *net_dev);
@@ -68,7 +66,7 @@ static void hv_nv_on_send_completion(net
 static void hv_nv_on_receive_completion(struct hv_vmbus_channel *chan,
 uint64_t tid, uint32_t status);
 static void hv_nv_on_receive(netvsc_dev *net_dev,
-struct hn_softc *sc, struct hv_vmbus_channel *chan,
+struct hn_rx_ring *rxr, struct hv_vmbus_channel *chan,
 const struct vmbus_chanpkt_hdr *pkt);
 
 /*
@@ -641,13 +639,14 @@ hv_nv_disconnect_from_vsp(netvsc_dev *ne
 }
 
 void
-hv_nv_subchan_attach(struct hv_vmbus_channel *chan)
+hv_nv_subchan_attach(struct hv_vmbus_channel *chan, struct hn_rx_ring *rxr)
 {
-
-   chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
+   KASSERT(rxr->hn_rx_idx == chan->ch_subidx,
+   ("chan%u subidx %u, rxr%d mismatch",
+chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx));
vmbus_chan_open(chan, NETVSC_DEVICE_RING_BUFFER_SIZE,
NETVSC_DEVICE_RING_BUFFER_SIZE, NULL, 0,
-   hv_nv_on_channel_callback, NULL);
+   hv_nv_on_channel_callback, rxr);
 }
 
 /*
@@ -656,7 +655,8 @@ hv_nv_subchan_attach(struct hv_vmbus_cha
  * Callback when the device belonging to this driver is added
  */
 netvsc_dev *
-hv_nv_on_device_add(struct hn_softc *sc, void *additional_info)
+hv_nv_on_device_add(struct hn_softc *sc, void *additional_info,
+struct hn_rx_ring *rxr)
 {
struct hv_vmbus_channel *chan = sc->hn_prichan;
netvsc_dev *net_dev;
@@ -670,18 +670,17 @@ hv_nv_on_device_add(struct hn_softc *sc,
 
sema_init(&net_dev->channel_init_sema, 0, "netdev_sema");
 
-   chan->ch_dev_rdbuf = malloc(NETVSC_PACKET_SIZE, M_NETVSC, M_WAITOK);
-
/*
 * Open the channel
 */
+   KASSERT(rxr->hn_rx_idx == chan->ch_subidx,
+   ("chan%u subidx %u, rxr%d mismatch",
+chan->ch_id, chan->ch_subidx, rxr->hn_rx_idx));
ret = vmbus_chan_open(chan,
NETVSC_DEVICE_RING_BUFFER_SIZE, NETVSC_DEVICE_RING_BUFFER_SIZE,
-   NULL, 0, hv_nv_on_channel_callback, NULL);
-   if (ret != 0) {
-   free(chan->ch_dev_rdbuf, M_NETVSC);
+   NULL, 0, hv_nv_on_channel_callback, rxr);
+   if (ret != 0)
goto cleanup;
-   }
 
/*
 * Connect with the NetVsp
@@ -694,7 +693,6 @@ hv_nv_on_device_add(struct hn_softc *sc,
 
 close:
/* Now, we can close the channel safely */
-   free(chan->ch_dev_rdbuf, M_NET

svn commit: r303071 - in head/sys/dev/hyperv: include netvsc storvsc utilities vmbus

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 06:00:27 2016
New Revision: 303071
URL: https://svnweb.freebsd.org/changeset/base/303071

Log:
  hyperv/vmbus: Hide channel struct definition.
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7245

Added:
  head/sys/dev/hyperv/vmbus/vmbus_chanvar.h   (contents, props changed)
Modified:
  head/sys/dev/hyperv/include/hyperv.h
  head/sys/dev/hyperv/include/vmbus.h
  head/sys/dev/hyperv/netvsc/hv_net_vsc.c
  head/sys/dev/hyperv/netvsc/hv_netvsc_drv_freebsd.c
  head/sys/dev/hyperv/storvsc/hv_storvsc_drv_freebsd.c
  head/sys/dev/hyperv/utilities/hv_kvp.c
  head/sys/dev/hyperv/vmbus/hv_vmbus_priv.h
  head/sys/dev/hyperv/vmbus/vmbus_chan.c

Modified: head/sys/dev/hyperv/include/hyperv.h
==
--- head/sys/dev/hyperv/include/hyperv.hWed Jul 20 05:48:52 2016
(r303070)
+++ head/sys/dev/hyperv/include/hyperv.hWed Jul 20 06:00:27 2016
(r303071)
@@ -83,122 +83,8 @@ struct hyperv_guid {
 
 inthyperv_guid2str(const struct hyperv_guid *, char *, size_t);
 
-typedef struct {
-   /*
-* offset in bytes from the start of ring data below
-*/
-   volatile uint32_t   write_index;
-   /*
-* offset in bytes from the start of ring data below
-*/
-   volatile uint32_t   read_index;
-   /*
-* NOTE: The interrupt_mask field is used only for channels, but
-* vmbus connection also uses this data structure
-*/
-   volatile uint32_t   interrupt_mask;
-   /* pad it to PAGE_SIZE so that data starts on a page */
-   uint8_t reserved[4084];
-
-   /*
-* WARNING: Ring data starts here
-*  !!! DO NOT place any fields below this !!!
-*/
-   uint8_t buffer[0];  /* doubles as interrupt mask */
-} __packed hv_vmbus_ring_buffer;
-
-typedef struct {
-   hv_vmbus_ring_buffer*   ring_buffer;
-   struct mtx  ring_lock;
-   uint32_tring_data_size; /* ring_size */
-} hv_vmbus_ring_buffer_info;
-
 struct hv_vmbus_channel;
 
-typedef void   (*vmbus_chan_callback_t)(struct hv_vmbus_channel *, void *);
-
-typedef struct hv_vmbus_channel {
-   device_tch_dev;
-   struct vmbus_softc  *ch_vmbus;
-   uint32_tch_flags;   /* VMBUS_CHAN_FLAG_ */
-   uint32_tch_id;  /* channel id */
-
-   /*
-* These are based on the offer_msg.monitor_id.
-* Save it here for easy access.
-*/
-   int ch_montrig_idx; /* MNF trig index */
-   uint32_tch_montrig_mask;/* MNF trig mask */
-
-   /*
-* TX bufring; at the beginning of ch_bufring.
-*/
-   hv_vmbus_ring_buffer_info   ch_txbr;
-   /*
-* RX bufring; immediately following ch_txbr.
-*/
-   hv_vmbus_ring_buffer_info   ch_rxbr;
-
-   struct taskqueue*ch_tq;
-   struct task ch_task;
-   vmbus_chan_callback_t   ch_cb;
-   void*ch_cbarg;
-
-   struct hyperv_mon_param *ch_monprm;
-   struct hyperv_dma   ch_monprm_dma;
-
-   int ch_cpuid;   /* owner cpu */
-   /*
-* Virtual cpuid for ch_cpuid; it is used to communicate cpuid
-* related information w/ Hyper-V.  If MSR_HV_VP_INDEX does not
-* exist, ch_vcpuid will always be 0 for compatibility.
-*/
-   uint32_tch_vcpuid;
-
-   /*
-* If this is a primary channel, ch_subchan* fields
-* contain sub-channels belonging to this primary
-* channel.
-*/
-   struct mtx  ch_subchan_lock;
-   TAILQ_HEAD(, hv_vmbus_channel)  ch_subchans;
-   int ch_subchan_cnt;
-
-   /* If this is a sub-channel */
-   TAILQ_ENTRY(hv_vmbus_channel)   ch_sublink; /* sub-channel link */
-   struct hv_vmbus_channel *ch_prichan;/* owner primary chan */
-
-   void*ch_bufring;/* TX+RX bufrings */
-   struct hyperv_dma   ch_bufring_dma;
-   uint32_tch_bufring_gpadl;
-
-   struct task ch_detach_task;
-   TAILQ_ENTRY(hv_vmbus_channel)   ch_prilink; /* primary chan link */
-   uint32_tch_subidx;  /* subchan index */
-   volatile uint32_t   ch_stflags; /* atomic-op */
-   /* VMBUS_CHAN_ST_ */
-   struct hyperv_guid  ch_guid_type;
-   struct hyperv_guid  ch_guid_inst;
-
-   struct sysctl_ctx_l

svn commit: r303072 - head/sys/dev/hyperv/vmbus

2016-07-19 Thread Sepherosa Ziehau
Author: sephe
Date: Wed Jul 20 06:12:32 2016
New Revision: 303072
URL: https://svnweb.freebsd.org/changeset/base/303072

Log:
  hyperv/vmbus: Save MNF trigger location instead of MNF trigger index.
  
  MFC after:1 week
  Sponsored by: Microsoft OSTC
  Differential Revision:https://reviews.freebsd.org/D7246

Modified:
  head/sys/dev/hyperv/vmbus/vmbus_chan.c
  head/sys/dev/hyperv/vmbus/vmbus_chanvar.h

Modified: head/sys/dev/hyperv/vmbus/vmbus_chan.c
==
--- head/sys/dev/hyperv/vmbus/vmbus_chan.c  Wed Jul 20 06:00:27 2016
(r303071)
+++ head/sys/dev/hyperv/vmbus/vmbus_chan.c  Wed Jul 20 06:12:32 2016
(r303072)
@@ -89,13 +89,10 @@ vmbus_chan_signal_tx(struct hv_vmbus_cha
atomic_set_long(&sc->vmbus_tx_evtflags[chanid >> VMBUS_EVTFLAG_SHIFT],
1UL << (chanid & VMBUS_EVTFLAG_MASK));
 
-   if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF) {
-   atomic_set_int(
-   &sc->vmbus_mnf2->mnf_trigs[chan->ch_montrig_idx].mt_pending,
-   chan->ch_montrig_mask);
-   } else {
+   if (chan->ch_flags & VMBUS_CHAN_FLAG_HASMNF)
+   atomic_set_int(chan->ch_montrig, chan->ch_montrig_mask);
+   else
hypercall_signal_event(chan->ch_monprm_dma.hv_paddr);
-   }
 }
 
 static int
@@ -1106,13 +1103,19 @@ vmbus_chan_msgproc_choffer(struct vmbus_
chan->ch_monprm->mp_connid = offer->chm_connid;
 
if (offer->chm_flags1 & VMBUS_CHOFFER_FLAG1_HASMNF) {
+   int trig_idx;
+
/*
 * Setup MNF stuffs.
 */
chan->ch_flags |= VMBUS_CHAN_FLAG_HASMNF;
-   chan->ch_montrig_idx = offer->chm_montrig / VMBUS_MONTRIG_LEN;
-   if (chan->ch_montrig_idx >= VMBUS_MONTRIGS_MAX)
+
+   trig_idx = offer->chm_montrig / VMBUS_MONTRIG_LEN;
+   if (trig_idx >= VMBUS_MONTRIGS_MAX)
panic("invalid monitor trigger %u", offer->chm_montrig);
+   chan->ch_montrig =
+   &sc->vmbus_mnf2->mnf_trigs[trig_idx].mt_pending;
+
chan->ch_montrig_mask =
1 << (offer->chm_montrig % VMBUS_MONTRIG_LEN);
}

Modified: head/sys/dev/hyperv/vmbus/vmbus_chanvar.h
==
--- head/sys/dev/hyperv/vmbus/vmbus_chanvar.h   Wed Jul 20 06:00:27 2016
(r303071)
+++ head/sys/dev/hyperv/vmbus/vmbus_chanvar.h   Wed Jul 20 06:12:32 2016
(r303072)
@@ -80,7 +80,7 @@ typedef struct hv_vmbus_channel {
 * These are based on the offer_msg.monitor_id.
 * Save it here for easy access.
 */
-   int ch_montrig_idx; /* MNF trig index */
+   volatile uint32_t   *ch_montrig;/* MNF trigger */
uint32_tch_montrig_mask;/* MNF trig mask */
 
/*
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


svn commit: r303073 - head/sys/netinet

2016-07-19 Thread Michael Tuexen
Author: tuexen
Date: Wed Jul 20 06:29:26 2016
New Revision: 303073
URL: https://svnweb.freebsd.org/changeset/base/303073

Log:
  Fix a bug in deferred stream reset processing which results
  in using a length field before it is set.
  
  Thanks to Taylor Brandstetter for reporting the issue and
  providing a fix.
  
  MFC after:3 days

Modified:
  head/sys/netinet/sctp_output.c

Modified: head/sys/netinet/sctp_output.c
==
--- head/sys/netinet/sctp_output.c  Wed Jul 20 06:12:32 2016
(r303072)
+++ head/sys/netinet/sctp_output.c  Wed Jul 20 06:29:26 2016
(r303073)
@@ -11940,7 +11940,6 @@ sctp_send_deferred_reset_response(struct
return;
}
SCTP_BUF_RESV_UF(chk->data, SCTP_MIN_OVERHEAD);
-   sctp_add_stream_reset_result(chk, ent->seq, response);
/* setup chunk parameters */
chk->sent = SCTP_DATAGRAM_UNSENT;
chk->snd_count = 0;
@@ -11955,6 +11954,7 @@ sctp_send_deferred_reset_response(struct
ch->chunk_length = htons(chk->book_size);
atomic_add_int(&chk->whoTo->ref_count, 1);
SCTP_BUF_LEN(chk->data) = chk->send_size;
+   sctp_add_stream_reset_result(chk, ent->seq, response);
/* insert the chunk for sending */
TAILQ_INSERT_TAIL(&asoc->control_send_queue,
chk,
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"


Re: svn commit: r303037 - head/sys/kern

2016-07-19 Thread Gleb Smirnoff
On Tue, Jul 19, 2016 at 06:31:19PM +, Randall Stewart wrote:
R> Author: rrs
R> Date: Tue Jul 19 18:31:19 2016
R> New Revision: 303037
R> URL: https://svnweb.freebsd.org/changeset/base/303037
R> 
R> Log:
R>   This reverts out Gleb's changes and adds three small
R>   fixes that I think closes up the races Gleb was
R>   looking for. This is running quite nicely in Netflix and
R>   now no longer causes TCP-tcb leaks.
R>   
R>   Differential Revision: 7135

Just to notice that I am completely pissed of by this commit
war, that you started.

I've been testing my changes properly, I gave people time to
review my changes. You didn't.

>From your explanation in other emails I see that you've been
testing your changes with a version of FreeBSD that is a heavily
modified FreeBSD 10, not 11.

The new code you mixed with revert of mine, doesn't fix the
problem observed. It fixes another problem that you imagined,
which might exist, but isn't observed. We already discussed that
and you didn't prove it wrong.

Your change doesn't even revert my change completely.

-- 
Totus tuus, Glebius.
___
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"