Re: [PATCH] PCI bus number management

2014-02-07 Thread Julian Stecklina
On 02/06/2014 08:37 PM, John Baldwin wrote:
 I would like to commit this to HEAD soon but thought I would post it for some 
 pre-commit testing for the brave. :)  If you are really brave, try booting 
 with 'hw.pci.clear_buses=1' which will force the kernel to renumber all buses 
 in the system.

This is a really bad idea, because BIOS/SMM tends to have those
hardcoded. Or am I misunderstanding the purpose of this patch?

Julian



signature.asc
Description: OpenPGP digital signature


Re: CURRENT: Ivy Bridge CPU (i3-3220) and Intel Bull Mountain RNG (options RDRAND_RNG)

2013-07-30 Thread Julian Stecklina
On 07/30/2013 01:46 PM, O. Hartmann wrote:
 
 I tried the new option options RDRAND_RNG on my SOHO server, equipted
 with a Intel i3-3220 Ivy Brdige CPU, which is supposed to have the
 Bull Mountain random number generator as a piece of hardware in its
 uncore.

 Enabling the kernel option doesn't reveal any presence of such a
 hardware number generator. sysct kern.random always reports 
 
 kern.random.adaptors:  yarrow
 
 By intentionally disallowing yarrow via commenting out options
 YARROW_RNG, the box reports no adaptors loaded. So, either this Ivy
 Bridge has been castrated and ripped off by Intel of its RNG or FreeBSD
 isn't capable of detecting it properly or I'm incapable of properly
 configure the kernel.

This might be Erratum BV54:

Problem:
On processors that support the RDRAND instruction, that capability
should be reported via the setting of CPUID.01H:ECX.RDRAND[bit 30]. Due
to this erratum, that bit will not be set, and the execution of the
RDRAND instruction will result in a #UD exception.

Implication:
Software will not be able to utilize the RDRAND instruction

http://www.intel.de/content/dam/www/public/us/en/documents/specification-updates/3rd-gen-core-desktop-specification-update.pdf

Julian
___
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: bmake (installed as default make): make: illegal option -- J

2013-05-22 Thread Julian Stecklina
On 05/17/2013 09:45 PM, Florent Peterschmitt wrote:
 Hi,
 
 With the r250749 revision of head, rebuilt world with make -j4
 buildworld, all was fine.
 
 Then install new world, reboot and so:
 
 $ cd /usr/src
 $ make -j4 kernel
 --- buildkernel ---
 make: illegal option -- J
 usage: make [-BPSXeiknpqrstv] [-C directory] [-D variable]
 [-d flags] [-E variable] [-f makefile] [-I directory]
 [-j max_jobs] [-m directory] [-V variable]
 [variable=value] [target ...]
 *** [buildkernel] Error code 2
 
 make: stopped in /usr/src
 1 error
 
 make: stopped in /usr/src


This also affects building CURRENT from a 9.1 system. One workaround is
to build without -j, but this is quite painful on an 8-core box.

I tried using bmake from ports, but this fails, because the build system
seems to have PATH hardcoded and it doesn't include /usr/local/bin. With
`which bmake` -j8 buildworld it seems to work, though, but it is not
finished compiling yet.

Maybe a paragraph about the proper way to upgrade could be added to the
UPDATING entry?

Julian

___
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: bmake (installed as default make): make: illegal option -- J

2013-05-22 Thread Julian Stecklina
On 05/22/2013 01:05 PM, Julian Stecklina wrote:
 This also affects building CURRENT from a 9.1 system. One workaround is
 to build without -j, but this is quite painful on an 8-core box.
 
 I tried using bmake from ports, but this fails, because the build system
 seems to have PATH hardcoded and it doesn't include /usr/local/bin. With
 `which bmake` -j8 buildworld it seems to work, though, but it is not
 finished compiling yet.

Fails when building /rescue, same as without absolute path.

Julian

___
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


Aliasing bug in FICL (may break loader with gcc4.4)

2010-02-15 Thread Julian Stecklina
Hello,

while porting FICL, I noticed an aliasing bug which manifests (at least)
with gcc 4.4.2 and 4.4.3 when strict-aliasing is enabled. The root cause is

#define LVALUEtoCELL(v) (*(CELL *)v)

in sys/boot/ficl/ficl.h. CELL is a union:

typedef union _cell
{
FICL_INT i;
FICL_UNS u;
[...]
void *p;
void (*fn)(void);
} CELL;

If you compile the attached C file with gcc-4.4.3 and -O3, all stores to
i are optimized out and the result is bogus. A ficl built with this gcc
is inoperable.

Giving the union the may_alias attribute works around this, but is GCC
specific (patch is attached). Just using ((CELL)v) does not work without
casting all over the place or extending the union.

Regards, Julian
-- 
Actually I made up the term 'object-oriented', and I can tell you I
did not have C++ in mind. - Alan Kay (OOPSLA 1997 Keynote)
--- ficl.h	2010-02-15 18:46:27.020120933 +0100
+++ /home/julian/src/nova/ficl/ficl.h	2010-02-15 18:16:32.370312051 +0100
@@ -269,13 +269,17 @@
 #endif
 void *p;
 void (*fn)(void);
-} CELL;
+} __attribute__((may_alias)) CELL;
 
 /*
 ** LVALUEtoCELL does a little pointer trickery to cast any CELL sized
 ** lvalue (informal definition: an expression whose result has an
 ** address) to CELL. Remember that constants and casts are NOT
 ** themselves lvalues!
+**
+** XXX This only works as long as the strict-aliasing rule is
+** circumvented (see attribute above). Otherwise GCC 4.4 will
+** silently throw away v and just put garbage into the CELL.
 */
 #define LVALUEtoCELL(v) (*(CELL *)v)
 


pgpxe1pn0ZTVW.pgp
Description: PGP signature