Re: copyin+copyout in one step ?

2013-05-28 Thread David Chisnall
On 28 May 2013, at 05:56, Zaphod Beeblebrox zbee...@gmail.com wrote:

 Urm... Isn't the use of shared memory the more obvious way to transfer data
 between processes?  Am I missing some nuance?

I can't speak for Luigi's use-case, but the Binder APIs in BeOS and Android 
call for this kind of copy.  The receiving process contains a ring buffer and 
the messages are pushed into it.  You could implement this in shared memory, 
but only if you trusted the sender not to modify the data at incorrect times or 
write invalid values into the metadata (or, in the case of Binder, to forge the 
pid / uid of the sender, which it attached to each message).  The kernel must 
act as an intermediary to enforce correct use of the buffer and also to allow 
the caller to block until space is available (perhaps by scheduling the 
receiver to run for a bit) without spinning and to allow multiple writers to be 
queued when there is no space, rather than have them racing.  The buffers are 
in the receiver's memory space because it is designed for resource constrained 
environments and for malicious parties to communicate, so it avoids a potential 
DoS by filling up kmem with buffers - a process that c
 reate a load of receive ports will simply fill up its own address space and 
die.

In the specific case of binder, you can avoid the overhead of extra VM lookups 
by mapping the buffer into the address space of every sender when you open the 
connection, but marking its access as privileged mode only.  This means that 
you'll be doing a simple copy.  You can also align the receive buffer in such a 
way that the consume counter is on a different page to the rest of the data 
structure, allowing you to get a page fault when the buffer transitions from 
full to non-full and there are messages waiting.

David

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: copyin+copyout in one step ?

2013-05-28 Thread Luigi Rizzo
On Tue, May 28, 2013 at 6:56 AM, Zaphod Beeblebrox zbee...@gmail.comwrote:

 On Mon, May 27, 2013 at 7:38 PM, Luigi Rizzo ri...@iet.unipi.it wrote:


 say a process P1 wants to use the kernel to copy the content of a
 buffer SRC (in its user address space) to a buffer DST (in the
 address space of another process P2), and assume that P1 issues the
 request to the kernel when P2 has already told the kernel where the
 data should go:


 Urm... Isn't the use of shared memory the more obvious way to transfer
 data between processes?  Am I missing some nuance?


see my other message about the use between VMs.

I cannot simply share memory because otherwise 

the sender could
alter the message while the receiver is playing with it,
so at least one copy is needed (or page flipping, but that
would be way more complex/wasteful/
expensive)

.

But also, in my case the source and destination buffers
are chosen arbitrarily by the two VMs, and do not necessarily
reside in the mmapped buffers that the kernel module provides.
So at the moment I have three copies instead of one.

cheers
luigi
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: make: /usr/ports/mail/postfix/Makefile line 92: warning: Couldn't read shell's output ...

2013-05-28 Thread Mark Johnston
On Sun, May 26, 2013 at 08:39:36PM -0400, Michael Butler wrote:
 What's up with this?
 
 imb@toshi:/home/imb sudo portupgrade -aR
 make: /usr/ports/mail/postfix/Makefile line 92: warning: Couldn't read
 shell's output for /usr/bin/grep -m 1 '^purgestat'
 /etc/mail/mailer.conf || true

I've been seeing this in a few other places. It looks like bmake prints
this warning when the shell command in a '!=' assignment doesn't print
anything to stdout. For instance, the line below will trigger a warning
with bmake:

FOO!=/usr/bin/true

-Mark
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: mounting root from NFS via ROOTDEVNAME

2013-05-28 Thread Eggert, Lars
Hi,

to conclude this thread, the patch below allows one to specify an nfs rootfs 
via the ROOTDEVNAME kernel option, which will be mounted when BOOTP does not 
return a root-path option.

Lars


diff --git a/sys/nfs/bootp_subr.c b/sys/nfs/bootp_subr.c
index 2c57a91..972fb12 100644
--- a/sys/nfs/bootp_subr.c
+++ b/sys/nfs/bootp_subr.c
@@ -45,6 +45,7 @@ __FBSDID($FreeBSD$);
 
 #include opt_bootp.h
 #include opt_nfs.h
+#include opt_rootdevname.h
 
 #include sys/param.h
 #include sys/systm.h
@@ -870,8 +871,20 @@ bootpc_call(struct bootpc_globalcontext *gctx, struct 
thread *td)
rtimo = time_second +
BOOTP_SETTLE_DELAY;
printf( (got root path));
-   } else
+   } else {
printf( (no root path));
+#ifdef ROOTDEVNAME
+   /*
+* If we'll mount rootfs from
+* ROOTDEVNAME, we can accept
+* offers without root paths.
+*/
+   gotrootpath = 1;
+   rtimo = time_second +
+   BOOTP_SETTLE_DELAY;
+   printf( (ROOTDEVNAME));
+#endif
+   }
printf(\n);
}
} /* while secs */
@@ -1440,6 +1453,16 @@ bootpc_decode_reply(struct nfsv3_diskless *nd, struct 
bootpc_ifcontext *ifctx,
 
p = bootpc_tag(gctx-tag, ifctx-reply, ifctx-replylen,
   TAG_ROOT);
+#ifdef ROOTDEVNAME
+   /*
+* If there was no root path in BOOTP, use the one in ROOTDEVNAME.
+*/
+   if (p == NULL) {
+   p = strdup(ROOTDEVNAME, M_TEMP);
+   if (strcmp(strsep(p, :), nfs) != 0)
+   panic(ROOTDEVNAME is not an NFS mount point);
+   }
+#endif
if (p != NULL) {
if (gctx-setrootfs != NULL) {
printf(rootfs %s (ignored) , p);

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Supermicro 6027R-N3RF+head, usb trouble

2013-05-28 Thread Bryan Drewery
On 4/21/2013 2:38 PM, Sergey V. Dyatko wrote:
 Hi,
 
 Can anybody explain why USB keyboard (and keyboard from
 integrated IPKVM) doesn't work when I boot with   'C606
 chipset Dual 4-Port SATA/SAS Storage Control Unit' enabled in bios?
 Also I can't boot that box from usb memstick and
 FreeBSD-10.0-CURRENT-amd64-20130413-r249439-release.iso They both
 loose(?) device and can't find root If I disable controller in bios
 system can't see any sata hdd connected to it:(
 booting with hw.usb.ehci.no_hs=1, kern.cam.boot_delay=1
 and debug.acpi.disabled=hostres without success. I setup dhcpd, tftp,
 nfs on my laptop and finally I install fbsd on that box, but question
 with kbd is open - It doesn't work..
 dmesg:
 http://svn.freebsd.by/files/dmesg_N3RF.txt
 pciconf -lv:
 http://svn.freebsd.by/files/pciconf_N3RF.txt
 
 I would appreciate any hints
 

I'm having this exact problem on HEAD r250991 as well. 9.1-RELEASE
(disc1) seems ok though.

Did you get this figured out?

My startup:

 uhub1: 2 ports with 2 removable, self powered
 uhub0: 2 ports with 2 removable, self powered
 Root mount waiting for: usbus1
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usb_alloc_device: set address 2 failed (USB_ERR_NOMEM, ignored)
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 USB_ERR_NOMEM
 Root mount waiting for: usbus1
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM, ignored)
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 USB_ERR_NOMEM
 Root mount waiting for: usbus1
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM, ignored)
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 USB_ERR_NOMEM
 Root mount waiting for: usbus1
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM, ignored)
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 USB_ERR_NOMEM
 Root mount waiting for: usbus1
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM, ignored)
 usbd_ctrl_transfer_setup: could not setup default USB transfer
 usbd_setup_device_desc: getting device descriptor at addr 2 failed, 
 USB_ERR_NOMEM
 ugen1.2: Unknown at usbus1 (disconnected)
 uhub_reattach_port: could not allocate new device


-- 
Regards,
Bryan Drewery



signature.asc
Description: OpenPGP digital signature


[head tinderbox] failure on i386/i386

2013-05-28 Thread FreeBSD Tinderbox
TB --- 2013-05-28 14:50:20 - tinderbox 2.10 running on freebsd-current.sentex.ca
TB --- 2013-05-28 14:50:20 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2013-05-28 14:50:20 - starting HEAD tinderbox run for i386/i386
TB --- 2013-05-28 14:50:20 - cleaning the object tree
TB --- 2013-05-28 14:50:20 - /usr/local/bin/svn stat /src
TB --- 2013-05-28 14:50:25 - At svn revision 251061
TB --- 2013-05-28 14:50:26 - building world
TB --- 2013-05-28 14:50:26 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-28 14:50:26 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-28 14:50:26 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-28 14:50:26 - SRCCONF=/dev/null
TB --- 2013-05-28 14:50:26 - TARGET=i386
TB --- 2013-05-28 14:50:26 - TARGET_ARCH=i386
TB --- 2013-05-28 14:50:26 - TZ=UTC
TB --- 2013-05-28 14:50:26 - __MAKE_CONF=/dev/null
TB --- 2013-05-28 14:50:26 - cd /src
TB --- 2013-05-28 14:50:26 - /usr/bin/make -B buildworld
 Building an up-to-date make(1)
 World build started on Tue May 28 14:50:33 UTC 2013
 Rebuilding the temporary build tree
 stage 1.1: legacy release compatibility shims
 stage 1.2: bootstrap tools
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3: cross tools
 stage 4.1: building includes
 stage 4.2: building libraries
 stage 4.3: make dependencies
 stage 4.4: building everything
 World build completed on Tue May 28 17:56:45 UTC 2013
TB --- 2013-05-28 17:56:45 - generating LINT kernel config
TB --- 2013-05-28 17:56:45 - cd /src/sys/i386/conf
TB --- 2013-05-28 17:56:45 - /usr/bin/make -B LINT
TB --- 2013-05-28 17:56:46 - cd /src/sys/i386/conf
TB --- 2013-05-28 17:56:46 - /usr/sbin/config -m LINT
TB --- 2013-05-28 17:56:46 - building LINT kernel
TB --- 2013-05-28 17:56:46 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-28 17:56:46 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-28 17:56:46 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-28 17:56:46 - SRCCONF=/dev/null
TB --- 2013-05-28 17:56:46 - TARGET=i386
TB --- 2013-05-28 17:56:46 - TARGET_ARCH=i386
TB --- 2013-05-28 17:56:46 - TZ=UTC
TB --- 2013-05-28 17:56:46 - __MAKE_CONF=/dev/null
TB --- 2013-05-28 17:56:46 - cd /src
TB --- 2013-05-28 17:56:46 - /usr/bin/make -B buildkernel KERNCONF=LINT
 Kernel build for LINT started on Tue May 28 17:56:46 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
 Kernel build for LINT completed on Tue May 28 18:30:25 UTC 2013
TB --- 2013-05-28 18:30:25 - cd /src/sys/i386/conf
TB --- 2013-05-28 18:30:25 - /usr/sbin/config -m LINT-NOINET
TB --- 2013-05-28 18:30:25 - building LINT-NOINET kernel
TB --- 2013-05-28 18:30:25 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-28 18:30:25 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-28 18:30:25 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-28 18:30:25 - SRCCONF=/dev/null
TB --- 2013-05-28 18:30:25 - TARGET=i386
TB --- 2013-05-28 18:30:25 - TARGET_ARCH=i386
TB --- 2013-05-28 18:30:25 - TZ=UTC
TB --- 2013-05-28 18:30:25 - __MAKE_CONF=/dev/null
TB --- 2013-05-28 18:30:25 - cd /src
TB --- 2013-05-28 18:30:25 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET
 Kernel build for LINT-NOINET started on Tue May 28 18:30:25 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
 Kernel build for LINT-NOINET completed on Tue May 28 19:01:17 UTC 2013
TB --- 2013-05-28 19:01:17 - cd /src/sys/i386/conf
TB --- 2013-05-28 19:01:17 - /usr/sbin/config -m LINT-NOINET6
TB --- 2013-05-28 19:01:17 - building LINT-NOINET6 kernel
TB --- 2013-05-28 19:01:17 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-28 19:01:17 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-28 19:01:17 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-28 19:01:17 - SRCCONF=/dev/null
TB --- 2013-05-28 19:01:17 - TARGET=i386
TB --- 2013-05-28 19:01:17 - TARGET_ARCH=i386
TB --- 2013-05-28 19:01:17 - TZ=UTC
TB --- 2013-05-28 19:01:17 - __MAKE_CONF=/dev/null
TB --- 2013-05-28 19:01:17 - cd /src
TB --- 2013-05-28 19:01:17 - /usr/bin/make -B buildkernel KERNCONF=LINT-NOINET6
 Kernel build for LINT-NOINET6 started on Tue May 28 19:01:17 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
 Kernel build for LINT-NOINET6 completed on Tue May 28 19:32:56 UTC 2013
TB --- 2013-05-28 19:32:56 - cd /src/sys/i386/conf
TB --- 2013-05-28 19:32:56 - /usr/sbin/config -m LINT-NOIP
TB --- 2013-05-28 19:32:56 - building LINT-NOIP kernel
TB 

Re: Incorrect comparison of ticks in deadlkres

2013-05-28 Thread Ian Lepore
On Sun, 2013-05-26 at 02:53 +0200, Attilio Rao wrote:
 On Sat, May 25, 2013 at 11:55 PM, Ryan Stone ryst...@gmail.com wrote:
  Currently deadlkres performs the following comparison when trying to check
  for threads that have been blocked on a mutex or sleeping on an sx lock:
 
  if (TD_ON_LOCK(td)  ticks  td-td_blktick) {
  /* check for deadlock...*/
 
 Yes the check looks indeed inverted.
 
 
 
  The test against ticks is incorrect.  It results in deadlkres only
  signaling a deadlock after ticks has rolled over; at 1000 hz this will take
  up to 49 days.  From looking at the history of the code this test appears
  to be a attempt to deal with ticks rollover.  However this is necessary;
  later on the code calculates the amount of time that has passed with:
  tticks = ticks - td-td_blktick;
 
  ticks was designed to exploit integer underflow in the case of rollover to
  guarantee that subtraction produces correct results in all cases (other
  than a double rollover, of course).  I am going to remove the two incorrect
  tests unless somebody can point out a overflow/underflow case that I
  haven't considered.
 
 I'm not sure I follow what are you saying.
 Assume that when thread td goes to sleep, ticks is very close to the
 32 bits limit. Then thread td goes to sleep and td-td_blktick is set
 to a value very close to 32 bits limits.
 After a while deadlkres thread kicks in and in the while ticks
 counter overflowed, rolling back to a very low value. How are you
 supposed to compute a valid value from this situation?
 I think that you need to still guard about overflow of ticks for such cases.
 

ticks is defined as a signed integer but conceptually it is unsigned --
it increments from 0 to UINT_MAX (not INT_MAX) then rolls over.  If
td-td_blktick is captured while ticks = UINT_MAX and later ticks has
rolled over and counted back up to 15, then ticks - td-td_blktick gives
an elapsed time of 16, as it should be.  Whether exploiting this
property of signed overflow is elegant or ugly is in the eye of the
beholder. :)

If the intent of the ticks  td-td_blktick is to avoid the deadlock
check until after enough time has passed, then I guess it should
probably be something more like (ticks - td-blktick)  SOME_THRESHOLD
so that it also uses the signed overflow trick.

-- Ian


___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Incorrect comparison of ticks in deadlkres

2013-05-28 Thread Ryan Stone
On Tue, May 28, 2013 at 5:29 PM, Ian Lepore i...@freebsd.org wrote:

 ticks is defined as a signed integer but conceptually it is unsigned --
 it increments from 0 to UINT_MAX (not INT_MAX) then rolls over.  If
 td-td_blktick is captured while ticks = UINT_MAX and later ticks has
 rolled over and counted back up to 15, then ticks - td-td_blktick gives
 an elapsed time of 16, as it should be.  Whether exploiting this
 property of signed overflow is elegant or ugly is in the eye of the
 beholder. :)

 If the intent of the ticks  td-td_blktick is to avoid the deadlock
 check until after enough time has passed, then I guess it should
 probably be something more like (ticks - td-blktick)  SOME_THRESHOLD
 so that it also uses the signed overflow trick.

 -- Ian


It already does this later on to actually detect the deadlock.  The test is
reversed but was intended to bail and not calculate the time elapsed at all
if ticks had overflowed after td_blktick was captured, but as you say this
is unnecessary.
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: Incorrect comparison of ticks in deadlkres

2013-05-28 Thread Attilio Rao
On Wed, May 29, 2013 at 1:18 AM, Ryan Stone ryst...@gmail.com wrote:
 On Tue, May 28, 2013 at 5:29 PM, Ian Lepore i...@freebsd.org wrote:

 ticks is defined as a signed integer but conceptually it is unsigned --
 it increments from 0 to UINT_MAX (not INT_MAX) then rolls over.  If
 td-td_blktick is captured while ticks = UINT_MAX and later ticks has
 rolled over and counted back up to 15, then ticks - td-td_blktick gives
 an elapsed time of 16, as it should be.  Whether exploiting this
 property of signed overflow is elegant or ugly is in the eye of the
 beholder. :)

 If the intent of the ticks  td-td_blktick is to avoid the deadlock
 check until after enough time has passed, then I guess it should
 probably be something more like (ticks - td-blktick)  SOME_THRESHOLD
 so that it also uses the signed overflow trick.

 -- Ian


 It already does this later on to actually detect the deadlock.  The test is
 reversed but was intended to bail and not calculate the time elapsed at all
 if ticks had overflowed after td_blktick was captured, but as you say this
 is unnecessary.

I'm not sure if there was a comparison between the 2 values (ticks,
td_slpticks) somewhere, but if there is not and only add/sub to the
relative values then it is good to be removed.

Attilio


--
Peace can only be achieved by understanding - A. Einstein
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


Re: files disappearing from ls on NFS

2013-05-28 Thread Rick Macklem
Hartmut Brandt wrote:
 On Wed, 15 May 2013, Rick Macklem wrote:
 
 RMWell, getdents() basically just calls kern_getdirentries() and it
 calls
 RMVOP_READDIR() { which is called nfs_readdir() in the NFS clients }.
 RMnfs_readdir() calls ncl_bioread() to do the real work of finding
 the
 RMbuffer cache blocks and copying the data out of them.
 RMOne thing you might check via printf()s is whether the buffer cache
 RMhas the zero'd data in it before it copies it to userland.
 
 I now dump the data just before the call to vn_io_fault_iomove in
 ncl_bioread(). So what I do:
 
 1. reboot
 2. login
 3. ls
 - I see that it is moving 4 blocks 4k each to the user and they look
 fine
 4. wait half an hour
 5. ls
 - now there is only one block, which contains zeros starting from
 0x200.
 
 Note that I don't do anything else on that machine during that time.
 
 RMSince you get valid data sometimes and partially zero'd out data
 others,
 RMI haven't a clue what is going on. One other person reported a
 problem
 RMwhen they used a small readdirsize, but it is hard to say they saw
 the
 RMsame thing and no one else seems to be seeing this, so I have no
 idea
 RMwhat it might be.
 RM
 RMI remember you started seeing this after an upgrade of current. Do
 you
 RMhappen to have dates (or rNN) for the old working verion vs the
 one that broke this?
 RM(All I can think to do is scan the commits that seem to somehow
 relate
 RM to the buffer cache or copying to userland or ???)
 
 It looks like I had copied the old kernel before installing the new
 one
 and it is from february 5th. There is no SVN revision in it - looks
 like
 that feature was added only recently.
 
 harti
 
Thanks to Hartmut's testing, a patch to fix this problem has just
been committed to head as r251079. The problem was caused by
vnode_pager_setsize() being called for directories (where the
size reported by the server can be smaller than the size of the
ufs-like directory created in the client from the RPCs XDR).

r251079 will be MFC'd to stable/9 in 1 week if things go smoothly.

You might see this problem for head kernels between r248567-r251078
and stable/9 kernels from r249078 (Apr. 4) until a week from now.

Sorry for any inconvenience and thanks go to Hartmut for his help
isolating this, rick

 RM
 RMrick
 RM
 RM harti
 RM
 RM -Original Message-
 RM From: Rick Macklem [mailto:rmack...@uoguelph.ca]
 RM Sent: Tuesday, May 14, 2013 2:50 PM
 RM To: Brandt, Hartmut
 RM Cc: curr...@freebsd.org
 RM Subject: Re: files disappearing from ls on NFS
 RM
 RM Hartmut Brandt wrote:
 RM  On Mon, 13 May 2013, Rick Macklem wrote:
 RM 
 RM  RMHartmut Brandt wrote:
 RM  RM On Sun, 12 May 2013, Rick Macklem wrote:
 RM  RM
 RM  RM RMHartmut Brandt wrote:
 RM  RM RM Hi,
 RM  RM RM
 RM  RM RM I've updated one of my -current machines this week
 RM  (previous
 RM  RM update
 RM  RM RM was in
 RM  RM RM february). Now I see a strange effect (it seems only
 on
 RM  NFS
 RM  RM mounts):
 RM  RM RM ls or
 RM  RM RM even echo * will list only some files (strange enough
 the
 RM  first
 RM  RM files
 RM  RM RM from
 RM  RM RM the normal, alphabetically ordered list). If I change
 RM  something
 RM  RM in the
 RM  RM RM directory (delete a file or create a new one) for
 some
 RM  time
 RM  the
 RM  RM RM complete
 RM  RM RM listing will appear but after sime time (seconds to a
 RM  minute
 RM  or
 RM  RM so)
 RM  RM RM again
 RM  RM RM only part of the files is listed.
 RM  RM RM
 RM  RM RM A ktrace on ls /usr/src/lib/libc/gen shows that
 RM  getdirentries is
 RM  RM RM called
 RM  RM RM only once (returning 4096). For a full listing
 RM  getdirentries
 RM  is
 RM  RM called
 RM  RM RM 5
 RM  RM RM times with the last returning 0.
 RM  RM RM
 RM  RM RM I can still open files that are not listed if I know
 their
 RM  name,
 RM  RM RM though.
 RM  RM RM
 RM  RM RM The NFS server is a Windows 2008 server with an
 OpenText
 RM  NFS
 RM  RM Server
 RM  RM RM which
 RM  RM RM works without problems to all the other FreeBSD
 machines.
 RM  RM RM
 RM  RM RM So what could that be?
 RM  RM RM
 RM  RM RMI've attached a patch that might be worth trying. It is
 a
 RM  shot in
 RM  RM the dark,
 RM  RM RMbut brings the new NFS client's readdir closer to the
 old
 RM  one
 RM  RM (which you
 RM  RM RMmentioned still works ok).
 RM  RM RM
 RM  RM RMPlease let me know how it goes, if you have a chance to
 test
 RM  it,
 RM  RM rick
 RM  RM
 RM  RM Hi Rick,
 RM  RM
 RM  RM the patch doesn't help.
 RM  RM
 RM  RM I wrote a small test program, which opens a directory,
 calls
 RM  RM getdents(2)
 RM  RM in a loop and dumps that. I figured out, that the return
 of the
 RM  system
 RM  RM call depends on the buffer size I pass to it. The
 directory has
 RM  a
 RM  RM block size of 4k according to fstat(2). If I use that, I
 get
 RM  some
 RM  RM 300
 RM  of the
 RM  RM almost 500 directory entries. If I use 8k, I get just
 around
 RM  200
 RM  and
 RM  RM if I
 RM  RM use 16k I get a handfull. If 

Re: BSD sleep

2013-05-28 Thread Joshua Isom

On 5/28/2013 6:01 PM, Kenta Suzumoto wrote:

Hi. Is there no built-in way of making sleep sleep in increments
of minutes, hours, etc? The GNU sleep can be invoked like sleep
1h for an hour. The FreeBSD one's manpage leads me to believe we
can only use seconds, which is kind of annoying. Is there an
undocmented or missing feature here? Seems really trivial to
implement.

~ $ sleep 1h
usage: sleep seconds



You think it's trivial until you read this:

http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time

If you sleep one hour, do you sleep one hour from now or one hour from 
the system clock which may change in the next hour?  If it's the system 
clock, you may sleep for ten minutes or ten hours.  If you need to sleep 
for 3600 seconds, that's simple and understandable.

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


BSD sleep

2013-05-28 Thread Kenta Suzumoto
Hi. Is there no built-in way of making sleep sleep in increments 
of minutes, hours, etc? The GNU sleep can be invoked like sleep 
1h for an hour. The FreeBSD one's manpage leads me to believe we 
can only use seconds, which is kind of annoying. Is there an 
undocmented or missing feature here? Seems really trivial to 
implement.

~ $ sleep 1h
usage: sleep seconds

___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org


[head tinderbox] failure on powerpc/powerpc

2013-05-28 Thread FreeBSD Tinderbox
TB --- 2013-05-28 22:21:37 - tinderbox 2.10 running on freebsd-current.sentex.ca
TB --- 2013-05-28 22:21:37 - FreeBSD freebsd-current.sentex.ca 8.3-PRERELEASE 
FreeBSD 8.3-PRERELEASE #0: Mon Mar 26 13:54:12 EDT 2012 
d...@freebsd-current.sentex.ca:/usr/obj/usr/src/sys/GENERIC  amd64
TB --- 2013-05-28 22:21:37 - starting HEAD tinderbox run for powerpc/powerpc
TB --- 2013-05-28 22:21:37 - cleaning the object tree
TB --- 2013-05-28 22:21:37 - /usr/local/bin/svn stat /src
TB --- 2013-05-28 22:21:40 - At svn revision 251061
TB --- 2013-05-28 22:21:41 - building world
TB --- 2013-05-28 22:21:41 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-28 22:21:41 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-28 22:21:41 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-28 22:21:41 - SRCCONF=/dev/null
TB --- 2013-05-28 22:21:41 - TARGET=powerpc
TB --- 2013-05-28 22:21:41 - TARGET_ARCH=powerpc
TB --- 2013-05-28 22:21:41 - TZ=UTC
TB --- 2013-05-28 22:21:41 - __MAKE_CONF=/dev/null
TB --- 2013-05-28 22:21:41 - cd /src
TB --- 2013-05-28 22:21:41 - /usr/bin/make -B buildworld
 Building an up-to-date make(1)
 World build started on Tue May 28 22:21:48 UTC 2013
 Rebuilding the temporary build tree
 stage 1.1: legacy release compatibility shims
 stage 1.2: bootstrap tools
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3: cross tools
 stage 4.1: building includes
 stage 4.2: building libraries
 stage 4.3: make dependencies
 stage 4.4: building everything
 World build completed on Wed May 29 00:54:36 UTC 2013
TB --- 2013-05-29 00:54:36 - generating LINT kernel config
TB --- 2013-05-29 00:54:36 - cd /src/sys/powerpc/conf
TB --- 2013-05-29 00:54:36 - /usr/bin/make -B LINT
TB --- 2013-05-29 00:54:36 - cd /src/sys/powerpc/conf
TB --- 2013-05-29 00:54:36 - /usr/sbin/config -m LINT
TB --- 2013-05-29 00:54:36 - building LINT kernel
TB --- 2013-05-29 00:54:36 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-29 00:54:36 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-29 00:54:36 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-29 00:54:36 - SRCCONF=/dev/null
TB --- 2013-05-29 00:54:36 - TARGET=powerpc
TB --- 2013-05-29 00:54:36 - TARGET_ARCH=powerpc
TB --- 2013-05-29 00:54:36 - TZ=UTC
TB --- 2013-05-29 00:54:36 - __MAKE_CONF=/dev/null
TB --- 2013-05-29 00:54:36 - cd /src
TB --- 2013-05-29 00:54:36 - /usr/bin/make -B buildkernel KERNCONF=LINT
 Kernel build for LINT started on Wed May 29 00:54:36 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
 Kernel build for LINT completed on Wed May 29 01:14:26 UTC 2013
TB --- 2013-05-29 01:14:26 - cd /src/sys/powerpc/conf
TB --- 2013-05-29 01:14:26 - /usr/sbin/config -m GENERIC
TB --- 2013-05-29 01:14:26 - building GENERIC kernel
TB --- 2013-05-29 01:14:26 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-29 01:14:26 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-29 01:14:26 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-29 01:14:26 - SRCCONF=/dev/null
TB --- 2013-05-29 01:14:26 - TARGET=powerpc
TB --- 2013-05-29 01:14:26 - TARGET_ARCH=powerpc
TB --- 2013-05-29 01:14:26 - TZ=UTC
TB --- 2013-05-29 01:14:26 - __MAKE_CONF=/dev/null
TB --- 2013-05-29 01:14:26 - cd /src
TB --- 2013-05-29 01:14:26 - /usr/bin/make -B buildkernel KERNCONF=GENERIC
 Kernel build for GENERIC started on Wed May 29 01:14:26 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
 Kernel build for GENERIC completed on Wed May 29 01:30:18 UTC 2013
TB --- 2013-05-29 01:30:18 - cd /src/sys/powerpc/conf
TB --- 2013-05-29 01:30:18 - /usr/sbin/config -m GENERIC64
TB --- 2013-05-29 01:30:18 - skipping GENERIC64 kernel
TB --- 2013-05-29 01:30:18 - cd /src/sys/powerpc/conf
TB --- 2013-05-29 01:30:18 - /usr/sbin/config -m MPC85XX
TB --- 2013-05-29 01:30:18 - building MPC85XX kernel
TB --- 2013-05-29 01:30:18 - CROSS_BUILD_TESTING=YES
TB --- 2013-05-29 01:30:18 - MAKEOBJDIRPREFIX=/obj
TB --- 2013-05-29 01:30:18 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
TB --- 2013-05-29 01:30:18 - SRCCONF=/dev/null
TB --- 2013-05-29 01:30:18 - TARGET=powerpc
TB --- 2013-05-29 01:30:18 - TARGET_ARCH=powerpc
TB --- 2013-05-29 01:30:18 - TZ=UTC
TB --- 2013-05-29 01:30:18 - __MAKE_CONF=/dev/null
TB --- 2013-05-29 01:30:18 - cd /src
TB --- 2013-05-29 01:30:18 - /usr/bin/make -B buildkernel KERNCONF=MPC85XX
 Kernel build for MPC85XX started on Wed May 29 01:30:18 UTC 2013
 stage 1: configuring the kernel
 stage 2.1: cleaning up the object tree
 stage 2.2: rebuilding the object tree
 stage 2.3: build tools
 stage 3.1: making dependencies
 stage 3.2: building the kernel
 stage 3.3: building the modules
--
cd 

Re: [head tinderbox] failure on powerpc/powerpc

2013-05-28 Thread Glen Barber
The suspect commit was already reverted.

Glen

On Wed, May 29, 2013 at 01:33:11AM +, FreeBSD Tinderbox wrote:
  stage 3.3: building the modules
 --
 cd /obj/powerpc.powerpc/src/sys/MPC85XX; 
 MAKEOBJDIRPREFIX=/obj/powerpc.powerpc  MACHINE_ARCH=powerpc  MACHINE=powerpc  
 CPUTYPE= GROFF_BIN_PATH=/obj/powerpc.powerpc/src/tmp/legacy/usr/bin  
 GROFF_FONT_PATH=/obj/powerpc.powerpc/src/tmp/legacy/usr/share/groff_font  
 GROFF_TMAC_PATH=/obj/powerpc.powerpc/src/tmp/legacy/usr/share/tmac  
 _SHLIBDIRPREFIX=/obj/powerpc.powerpc/src/tmp  _LDSCRIPTROOT=  
 VERSION=FreeBSD 8.3-PRERELEASE amd64 803500  INSTALL=sh 
 /src/tools/install.sh  
 PATH=/obj/powerpc.powerpc/src/tmp/legacy/usr/sbin:/obj/powerpc.powerpc/src/tmp/legacy/usr/bin:/obj/powerpc.powerpc/src/tmp/legacy/usr/games:/obj/powerpc.powerpc/src/tmp/legacy/bin:/obj/powerpc.powerpc/src/tmp/usr/sbin:/obj/powerpc.powerpc/src/tmp/usr/bin:/obj/powerpc.powerpc/src/tmp/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
  CC=cc  CXX=c++   CPP=cpp   AS=as AR=ar LD=ld NM=nm  OBJDUMP= 
 RANLIB=ranlib STRINGS= COMPILER_TYPE=gcc /obj/src/make.amd64/make  -B -m 
 /src/share/mk  KERNEL=kernel modules-all -DN!
  O_MODULES_OBJ
 make: don't know how to make modules-all. Stop
 
 make: stopped in /obj/powerpc.powerpc/src/sys/MPC85XX
 *** Error code 2
 
 Stop.
 make: stopped in /src
 *** Error code 1
 
 Stop in /src.
 TB --- 2013-05-29 01:33:11 - WARNING: /usr/bin/make returned exit code  1 
 TB --- 2013-05-29 01:33:11 - ERROR: failed to build MPC85XX kernel
 TB --- 2013-05-29 01:33:11 - 9953.65 user 1229.51 system 11494.62 real
 
 


pgp_Vm1ZjPNJ8.pgp
Description: PGP signature


Re: Supermicro 6027R-N3RF+head, usb trouble

2013-05-28 Thread Sergey V. Dyatko
On Tue, 28 May 2013 13:20:53 -0500
Bryan Drewery bdrew...@freebsd.org wrote:

 On 4/21/2013 2:38 PM, Sergey V. Dyatko wrote:
  Hi,
  
  Can anybody explain why USB keyboard (and keyboard from
  integrated IPKVM) doesn't work when I boot with   'C606
  chipset Dual 4-Port SATA/SAS Storage Control Unit' enabled in bios?
  Also I can't boot that box from usb memstick and
  FreeBSD-10.0-CURRENT-amd64-20130413-r249439-release.iso They both
  loose(?) device and can't find root If I disable controller in bios
  system can't see any sata hdd connected to it:(
  booting with hw.usb.ehci.no_hs=1, kern.cam.boot_delay=1
  and debug.acpi.disabled=hostres without success. I setup dhcpd,
  tftp, nfs on my laptop and finally I install fbsd on that box, but
  question with kbd is open - It doesn't work..
  dmesg:
  http://svn.freebsd.by/files/dmesg_N3RF.txt
  pciconf -lv:
  http://svn.freebsd.by/files/pciconf_N3RF.txt
  
  I would appreciate any hints
  
 
 I'm having this exact problem on HEAD r250991 as well. 9.1-RELEASE
 (disc1) seems ok though.
 
 Did you get this figured out?
 

I added to loader.conf
kern.maxbcache=128M
vfs.maxbufspace=134217728
also I create /boot.config with '-v'
I don't know what exactly help, but now usb kbd (ipkvm) works fine
for me.
p.s. It is smbios.system.product=X9DRW

 My startup:
 
  uhub1: 2 ports with 2 removable, self powered
  uhub0: 2 ports with 2 removable, self powered
  Root mount waiting for: usbus1
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usb_alloc_device: set address 2 failed (USB_ERR_NOMEM, ignored)
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usbd_setup_device_desc: getting device descriptor at addr 2 failed,
  USB_ERR_NOMEM Root mount waiting for: usbus1
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM,
  ignored) usbd_ctrl_transfer_setup: could not setup default USB
  transfer usbd_setup_device_desc: getting device descriptor at addr
  2 failed, USB_ERR_NOMEM Root mount waiting for: usbus1
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM,
  ignored) usbd_ctrl_transfer_setup: could not setup default USB
  transfer usbd_setup_device_desc: getting device descriptor at addr
  2 failed, USB_ERR_NOMEM Root mount waiting for: usbus1
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM,
  ignored) usbd_ctrl_transfer_setup: could not setup default USB
  transfer usbd_setup_device_desc: getting device descriptor at addr
  2 failed, USB_ERR_NOMEM Root mount waiting for: usbus1
  usbd_ctrl_transfer_setup: could not setup default USB transfer
  usbd_req_re_enumerate: addr=2, set address failed! (USB_ERR_NOMEM,
  ignored) usbd_ctrl_transfer_setup: could not setup default USB
  transfer usbd_setup_device_desc: getting device descriptor at addr
  2 failed, USB_ERR_NOMEM ugen1.2: Unknown at usbus1 (disconnected)
  uhub_reattach_port: could not allocate new device
 
 



-- 
wbr, tiger
___
freebsd-current@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org