Re: [r306298]: buildworld fails with OFED: nm: 'log.pico': No such file or directory

2016-09-24 Thread Marcel Moolenaar



On September 24, 2016 at 11:14:38 AM, O. Hartmann (ohart...@zedat.fu-berlin.de) 
wrote:

Am Sat, 24 Sep 2016 10:33:26 -0700 
Marcel Moolenaar <mar...@xcllnt.net> schrieb: 

> On September 24, 2016 at 10:26:44 AM, O. Hartmann 
> (ohart...@zedat.fu-berlin.de) wrote: 
> 
> Recent sources of CURRENT (r306298) fail to build while WITH OFED is 
> selected:  
> That’s me. Looking into it. 
> 
> 

It has been resolved by commit 
Thanks for confirming. I was still waiting for my build to complete...




signature.asc
Description: Message signed with OpenPGP using AMPGpg


Re: [r306298]: buildworld fails with OFED: nm: 'log.pico': No such file or directory

2016-09-24 Thread Marcel Moolenaar



On September 24, 2016 at 10:26:44 AM, O. Hartmann (ohart...@zedat.fu-berlin.de) 
wrote:

Recent sources of CURRENT (r306298) fail to build while WITH OFED is selected: 
That’s me. Looking into it.




signature.asc
Description: Message signed with OpenPGP using AMPGpg


HEADSUP: *.So renamed to *.pico

2016-09-24 Thread Marcel Moolenaar
All,

FreeBSD can now be compiled on a case-insensitive file system.
For this to happen, relocatable objects compiled with -fpic (aka
shared objects) were renamed from *.So to *.pico so that they
don’t clash with shared libraries that have extension *.so.

You may want to avoid using an incremental build (after updating
the source tree) or otherwise first rename all *.So files to *.pico.

FYI,

— 
Marcel Moolenaar
mar...@xcllnt.net

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

Re: hint.uart.1 in device.hints causes freeze at boot

2016-02-26 Thread Marcel Moolenaar

> On Feb 26, 2016, at 7:48 AM, Lundberg, Johannes 
> <johan...@brilliantservice.co.jp> wrote:
> 
> Hi
> 
> Not sure if it's ok to cross post but I wasn't sure which list to send to.
> 
> On Intel Atom X5-Z8300 SoC (CherryTrail) the install memstick image (amd64)
> halts during boot because of uart.1 settings in device hints.

I have found that FreeBSD’s default device.hints file has fallen
behind on reality and is indeed causing problems on more modern
H/W, like the H/W you mention.

> 
> I'm sure it is there for a reason so what is the alternative actions? Is
> the solution to get a bootable Atom SoC image to create yet another
> distribution or can the installer choose the proper device.hints
> dynamically during boot?

FreeBSD should really get rid of any default hints by now; or at least
limit the hints to what is absolutely certain to be needed or to be
correct.

--
Marcel Moolenaar
mar...@xcllnt.net





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: r286615: /usr/libexec/ftpd broken!

2015-08-18 Thread Marcel Moolenaar

 On Aug 18, 2015, at 7:46 AM, O. Hartmann ohart...@zedat.fu-berlin.de wrote:
 
 Am Tue, 18 Aug 2015 07:35:25 -0700
 Marcel Moolenaar mar...@xcllnt.net schrieb:
 
 
 On Aug 17, 2015, at 10:15 PM, O. Hartmann ohart...@zedat.fu-berlin.de 
 wrote:
 
 Port security/heimdal installs its own ftpd with its appropriate manpages.
 
 Ugh :-(
 
 It would have been so nice if man(1) would have told you that there
 were 2 ftpd manpages and that you need to specify which one you want.
 That should raise an eyebrow right away...
 
 
 A hint came from this list, so I checked via locate the existence of multiple 
 ftpd and
 ftpd.8[.gz] - and yes, I found several. I circumvent the problem by applying 
 to man the
 option -M/usr/share/man which brought up the the correct manpage.

I think distinct sections would be nice:
1-9 base system
1P-9P   ports/packages
1L-9L   local manpages.


 And if it would not be hard ebough, I figured, that deleting port 
 security/heimdal didn't
 erase the manpage  on the particular machine I tested with :-/

Cached manpage, I presume?

--
Marcel Moolenaar
mar...@xcllnt.net





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: r286615: /usr/libexec/ftpd broken!

2015-08-18 Thread Marcel Moolenaar

 On Aug 17, 2015, at 10:15 PM, O. Hartmann ohart...@zedat.fu-berlin.de wrote:
 
 Port security/heimdal installs its own ftpd with its appropriate manpages.

Ugh :-(

It would have been so nice if man(1) would have told you that there
were 2 ftpd manpages and that you need to specify which one you want.
That should raise an eyebrow right away...

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Appending to message buffer while in ddb

2015-08-03 Thread Marcel Moolenaar

 On Aug 3, 2015, at 12:59 PM, Eric Badger eric_bad...@dell.com wrote:
 
 Hi there,
 
 Since r226435, output from kernel printf/log functions is not appended to the 
 message buffer when in ddb. The commit message doesn't call this out 
 specifically; instead it appears to have been to address double printing to 
 the console while in ddb. I noticed this because a ddb script which 
 previously resulted in some things ending up in a textdump's msgbuf.txt no 
 longer does so. It may be that the answer is use db_printf in ddb, which is 
 ok, but I thought I'd check anyway to see if the aforementioned change was 
 indeed intentional, since I wasn't able to dig up any discussion about it.

It’s a direct consequence.

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: ls is broken for non-C locales due to libxo

2015-06-17 Thread Marcel Moolenaar

 On Jun 16, 2015, at 9:53 PM, Andrey Chernov a...@freebsd.org wrote:

 Should be no any %FF, but single char in pre libxo ls or nothing in post 
 libxo one.
 
 Use
 LANG=ru_RU.KOI8-R
 before touch command. It looks like you create file with name %FF instead.

No difference:

fbsdvm64% env LANG=ru_RU.KOI8-R touch `env LANG=ru_RU.KOI8-R printf \377`
fbsdvm64% ls -al
total 8
-rw-r--r--   1 marcel  staff0 Jun 17 06:56 %FF
drwxr-xr-x   3 marcel  staff  102 Jun 17 06:56 .
drwxr-xr-x  12 marcel  staff  408 Jun 17 06:55 ..

--
Marcel Moolenaar
mar...@xcllnt.net





signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: ls is broken for non-C locales due to libxo

2015-06-17 Thread Marcel Moolenaar

 On Jun 17, 2015, at 9:35 AM, Andrey Chernov a...@freebsd.org wrote:
 
 Signed PGP part
 On 17.06.2015 16:58, Marcel Moolenaar wrote:
 
  On Jun 16, 2015, at 9:53 PM, Andrey Chernov a...@freebsd.org
  wrote:
 
  Should be no any %FF, but single char in pre libxo ls or nothing
  in post libxo one.
 
  Use LANG=ru_RU.KOI8-R before touch command. It looks like you
  create file with name %FF instead.
 
  No difference:
 
  fbsdvm64% env LANG=ru_RU.KOI8-R touch `env LANG=ru_RU.KOI8-R printf
  \377` fbsdvm64% ls -al total 8 -rw-r--r--   1 marcel  staff0
  Jun 17 06:56 %FF drwxr-xr-x   3 marcel  staff  102 Jun 17 06:56 .
  drwxr-xr-x  12 marcel  staff  408 Jun 17 06:55 ..
 
 The original bug was fixed in r284494 by kan@
 
 In any case, what you demonstrates is very strange and can be display
 (console,xterm,etc.) bug or probably libxio bug, because ls alone
 _never_ use %xx encoding, it should print '?' for invalid character or
 just character itself for valid ones.

Good point. I’ll try various things (esp. compare against 10).

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: ls is broken for non-C locales due to libxo

2015-06-16 Thread Marcel Moolenaar

 On Jun 16, 2015, at 8:46 PM, Andrey Chernov a...@freebsd.org wrote:
 
 Signed PGP part
 On 17.06.2015 6:23, Marcel Moolenaar wrote:
  Date/time is fixed. I don?t know how to reproduce the filename
  problem, so make sure sources are up-to-date and if still a
  problem, provide me with a way to reproduce.
 
 touch `printf \377`
 env LANG=ru_RU.KOI8-R ls -l | od -bc | grep 377

fbsdvm64% touch `printf \377”`
fbsdvm64% ls -l | head -2
total 96
-rw-r--r--  1 marcel  staff  0 Jun 16 21:25 %FF

fbsdvm64% env LANG=ru_RU.KOI8-R ls -l | head -2
total 96
-rw-r--r--  1 marcel  staff  0 16 ??? 21:25 %FF

So, what’s wrong?

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: ls is broken for non-C locales due to libxo

2015-06-16 Thread Marcel Moolenaar

 On Jun 16, 2015, at 7:42 PM, Andrey Chernov a...@freebsd.org wrote:
 
 On 17.06.2015 5:18, Andrey Chernov wrote:
 Recent -current, LANG=ru_RU.KOI8-R locale. ls -t eats whole date column, 
 just ls eats whole filenames with printable national characters inside. Long 
 live libxo.
 
 
 I mean ls -l. To be precise, for 8bit non-C locales at least:
 ls -lt: skip date column and eat filename with even single 8bit
 character inside.
 ls -l: just eat filename as above.

Date/time is fixed. I don’t know how to reproduce the filename
problem, so make sure sources are up-to-date and if still a
problem, provide me with a way to reproduce.

Thanks,

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


nagios vs w/uptime

2015-02-10 Thread Marcel Moolenaar
[Moving to current@]

On Feb 10, 2015, at 11:52 AM, Peter Wemm pe...@wemm.org wrote:

 Surprises:
 * nagios doesn't like w / uptime anymore. libxo perhaps?

Seems most likely, although I haven’t seen any differences in output
in my (admittedly limited) testing.

In what way does Nagios not like w/uptime?
Any concrete errors, output or misbehavior?
Ideally: can you reproduce the problem?

--
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Poor state of the build infrastructure.

2014-09-24 Thread Marcel Moolenaar

On Sep 24, 2014, at 12:54 PM, John Baldwin j...@freebsd.org wrote:

 On Tuesday, September 23, 2014 09:29:48 AM Marcel Moolenaar wrote:
 What is going on here?
 Are we still in some kind of flux and people aren't done yet or is
 this the intended state by virtue of noone having anything left on
 there TODO list?
 
 Sorry to ask a dumb question, but are you sure you did the make buildworld 
 first?  Shouldn't that have errored if it couldn't build crt1?

The root cause problem was that MAKEOBJDIRPREFIX was not set
to whatever it was set to during buildworld. That was easy
enough to figure out when a bunch of things don't add up.

But neither problem mentioned in the email had anything to
do with MAKEOBJDIRPREFIX. Having to set the COMPILER_TYPE
as part of an install is a bug. Entering a powerpc buildenv
and having a compiler that builds for the host (or maybe
just some default) is a regression.

The only thing the FreeBSD build is good at, really, is
building in /usr/src for the host. The rest is just not
up to par and I think it harms FreeBSD beyond belief.

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Poor state of the build infrastructure.

2014-09-24 Thread Marcel Moolenaar

On Sep 24, 2014, at 4:47 PM, Justin Hibbits chmeeed...@gmail.com wrote:

  It should probably error out instead, since the build
 environment isn't sane at this point.  I ran into this probably a few
 weeks back.
 
 The only thing the FreeBSD build is good at, really, is
 building in /usr/src for the host. The rest is just not
 up to par and I think it harms FreeBSD beyond belief.
 
 I have no problems building outside of /usr/src.

It's not a problem in the sense that it cannot be done, but
just think about having to share a machine with a bunch of
people and you don't own the machine.
You quickly realize that without MAKEOBJDIRPREFIX or with
files in /etc (like /etc/make.conf) that you can't tweak,
you quick;y realize how error prone everything and how
much time you end up wasting.

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Poor state of the build infrastructure.

2014-09-23 Thread Marcel Moolenaar
Things have regressed from last I tried (which is a while). After a
clean buildworld for PowerPC I can't install it:

# make installworld TARGET_ARCH=powerpc TARGET=powerpc __MAKE_CONF=/dev/null 
DESTDIR=/tank/scratch/powerpc
mkdir -p /tmp/install.pjtGQ4J8
:
make[2]: /tank/scratch/marcelm/head/share/mk/bsd.compiler.mk line 37: Unable 
to determine compiler type for cc.  Consider setting COMPILER_TYPE.
*** Error code 1

And look at share/mk/bsd.compiler.mk. Its comments with typos doesn't
even fit 80 character. While technically speaking, not a problem, it
does leave the impression of low quality. This has the unfortunate
side-effect of deepening the low quality perception caused by not
being able to do an installworld in the first place.

So, ok. I add COMPILER_TYPE=fuckthat to the command line and guess
what:

# make installworld TARGET_ARCH=powerpc TARGET=powerpc __MAKE_CONF=/dev/null 
DESTDIR=/tank/scratch/powerpc COMPILER_TYPE=fuckthat
mkdir -p /tmp/install.pFqalBOs
:
 Making hierarchy
:
 Installing everything
:
=== lib/csu/powerpc (install)
install -o root -g wheel -m 444  crt1.o crti.o crtn.o Scrt1.o gcrt1.o 
/tank/scratch/powerpc/usr/lib
install: crt1.o: No such file or directory
*** Error code 71

What???

Ok, let's check if things were build properly:

% make buildenv __MAKE_CONF=/dev/null TARGET=powerpc TARGET_ARCH=powerpc
$ cd lib/csu/powerpc
$ make
:
cc  -O2 -pipe ... -c crti.S
crti.S:34:13: error: unexpected token in memory operand
 stwu 1,-16(1)
^
crti.S:35:2: error: invalid instruction mnemonic 'mflr'
 mflr 0
 ^~~~
crti.S:36:12: error: unexpected token in memory operand
 stw 31,12(1)
   ^
crti.S:37:11: error: unexpected token in memory operand
 stw 0,20(1)
  ^
crti.S:38:2: error: invalid instruction mnemonic 'mr'
 mr 31,1
 ^~
crti.S:45:13: error: unexpected token in memory operand
 stwu 1,-16(1)
^
crti.S:46:2: error: invalid instruction mnemonic 'mflr'
 mflr 0
 ^~~~
crti.S:47:12: error: unexpected token in memory operand
 stw 31,12(1)
   ^
crti.S:48:11: error: unexpected token in memory operand
 stw 0,20(1)
  ^
crti.S:49:2: error: invalid instruction mnemonic 'mr'
 mr 31,1
 ^~
*** Error code 1


Grrr...

$ which cc
/usr/bin/cc
$ cc -v
FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
Target: x86_64-unknown-freebsd10.1
Thread model: posix
Selected GCC installation: 

So, now even the very questionable but fundamentally non-broken make
buildenv isn't working anymore. How is anyone going to develop for
anything but the host this way. Granted we seriously sucked in this
regard to begin with but we seem to have regressed to the point of
having absolutely no working support whatsoever.

What is going on here?
Are we still in some kind of flux and people aren't done yet or is
this the intended state by virtue of noone having anything left on
there TODO list?

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-25 Thread Marcel Moolenaar

On Aug 25, 2014, at 12:48 AM, Andrey V. Elsukov bu7c...@yandex.ru wrote:

 On 25.08.2014 03:55, Marcel Moolenaar wrote:
 Though, w/ people dd'ing images onto disks, and using growfs to grow
 as necessary, we might want to allocate a few more more than the
 minimum...  I do agree that we want to keep sizes to a minimum...
 
 One thing I can maybe do is simply fill the empty sectors
 that are there because of alignment. If you add -P 4K to
 mkimg, then the first partition will by 4K aligned and you
 have about 5 sectors unused between the end of the GPT
 table and the first sector of the first partition. I may
 as well extend the table to cover those unued sectors.
 
 IMHO, mkimg should behave like gpart and create images in
 gpart-compatible way.

It already does. There's s difference between behaving
like something else or behaving exactly identical to
that something. The same applies to compatible. It is
not the same as identical.

There is no compatibility issue. mkimg follows the GPT
specification (modulo bugs) and gpart happily groks the
partition table.

 Some users may want to copy the partition layout
 from the image to real hardware and they will not be able to do it.

I'm inclined to say that generally speaking this is not
possible. The GPT has metadata in the first few sectors
*and* the last few sectors and LBAs of these sectors are
part of the metadata. You cannot blindly copy an image
onto a physical medium unless the image and the physical
medium are of exactly the same size. Odds are they are
not.

To reliably transfer or convert an image (e.g. RAW-VHD)
one must modify the image as part of the process. Not a
hard rule, but best to assume as a rule of thumb. This
seems to warrant a utility all by itself.

 Also, now FreeBSD 11.0 uses different first usable LBA. By default it is
 4k aligned. And this creates some incompatibility with older versions.
 You can't do `gpart restore` and get the same table, as you had on older
 system.

It sounds restore is broken then. The restore command
cannot ever assume anything about the GPT. Including
the tool that created the GPT. In order to restore a
GPT, it must be properly backed-up. The backup header
and table should suffice most of the time for that
purpose as it's a replica, but as soon as meta-data is
missing and the restore command has to guess, things
will go wrong.

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-24 Thread Marcel Moolenaar

On Aug 24, 2014, at 2:11 AM, Andrey V. Elsukov bu7c...@yandex.ru wrote:

 On 24.08.2014 06:14, Craig Rodrigues wrote:

 I did some further debugging inside the loader by doing the following.
  - I added CFLAGS += -DPART_DEBUG to sys/boot/common/Makefile.inc
  - I added DEBUG() statements all over sys/boot/common/part.c
 
 I observed that in sys/boot/common/part.c in the ptbl_gptread() function,
 that in this section:
 
305 ent = (struct gpt_ent *)tbl;
306 size = MIN(hdr.hdr_entries * hdr.hdr_entsz,
307 MAXTBLSZ * table-sectorsize);
308 for (i = 0; i  size / hdr.hdr_entsz; i++, ent++) {
309 if (uuid_equal(ent-ent_type, gpt_uuid_unused, 
 NULL))
310 continue;
 
 ent-ent_type is all 0's, which matches gpt_uuid_unused, so it bails
 out of the loop and never adds the gpt partitions to the list of partitions
 that the loader can access.
 
 Yes, the problem is in the ptable_gptread() function. I'll commit the fix.
 

Actually, no. There is *a* problem in that function:
The function does not respect hdr.hdr_entsz when it
needs the next entry. It simply uses ent++, which
is fixed our definition of struct gpt_ent and may
not match the definition of the writer.

I don't see how the loader is responsible for *the*
problem. All I see in qemu is that the loader, when
it reads a sector, isn't getting the actual sector
data that's in the image.

Just do a ktrace on qemu and you'll see what I mean.
YMMV of course,

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-24 Thread Marcel Moolenaar

On Aug 24, 2014, at 9:59 AM, Craig Rodrigues rodr...@freebsd.org wrote:

 On Sun, Aug 24, 2014 at 2:11 AM, Andrey V. Elsukov bu7c...@yandex.ru wrote:
 
 Yes, the problem is in the ptable_gptread() function. I'll commit the fix.
 

 Should mkimg be changed to create a partition table with 128 entries
 by default, to match older versions of FreeBSD which do not have this fix?

Maybe. 128 is the suggested default. It's not a hard lower
limit. Technically speaking, it's perfectly fine to create
just enough entries to fill a single sector. Then again,
code makes all kinds of assumptions or has all kinds of
bugs -- just like the logic in the loader apparently.

By having mkimg create a large table, even if it's knows
up front that it doesn't have to may prevent broken code
from tripping over, bit it surely bloats the image for
no reason.

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-24 Thread Marcel Moolenaar

On Aug 24, 2014, at 4:31 PM, John-Mark Gurney j...@funkthat.com wrote:
 
 With mkimg, you know exactly how many partitions you are creating
 , so you don't need to specify 128 as the number of partitions.
 
 Though, w/ people dd'ing images onto disks, and using growfs to grow
 as necessary, we might want to allocate a few more more than the
 minimum...  I do agree that we want to keep sizes to a minimum...

One thing I can maybe do is simply fill the empty sectors
that are there because of alignment. If you add -P 4K to
mkimg, then the first partition will by 4K aligned and you
have about 5 sectors unused between the end of the GPT
table and the first sector of the first partition. I may
as well extend the table to cover those unued sectors.

However, this is a pretty side-ways way to end up with a
GPT table that has some extra room. Maybe having scheme-
specific options for this kind of thing is not bad. At
least EBR and APM have the same problem and the BSD
disk label can also be created with more than just 8
partitions.

Related:
o   Is there a need to create images with empty space at
the end of in between partitions?
o   Is there a need to create partitions with specific
indices (i.e. index 6 for a typical 'f' partition)?

Answers to these questions could help figure this out...

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-23 Thread Marcel Moolenaar

On Aug 23, 2014, at 12:00 PM, Craig Rodrigues rodr...@freebsd.org wrote:
 
 I ran the following crazy experiment, just to see what would happen:
 
 dd if=/dev/md1s2 of=/dev/md0s2 bs=8192
 
 I then tried to boot the first image with QEMU, and it booted successfully,
 with my UFS file system that I had previously created with makefs.
 
 I'm not sure where to look for the problem.  I notice that
 in the non-working image, the offset starts at block 3,
 while in the working image, the offset starts at block 34.
 
 Is that enough to make things not boot?

Could be. Try the -P option to mkimg. It sets the
underlying (unexposed) physical sector size while
still working with the visible 512 bytes sectors.
The net effect is that for the GPT scheme things
get aligned to the physical sector size and that
it also causes the image size to be rounded.

You can also try emitting vmdk directly to see if
that makes a difference. vmdk also has the side-
effect of rounding the image to the grain size.

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: mkimg used to create gpt image, problem booting

2014-08-22 Thread Marcel Moolenaar

On Aug 22, 2014, at 9:49 AM, Craig Rodrigues rodr...@freebsd.org wrote:

 
 (5)  Tried to boot the image with qemu:
 
 qemu-system-x86_64 -m 2048 -hda /tmp/foo1.img

*snip*

 If I mdconfig the foo1.img disk image, and do a gpart show, I see:
 
 =  3  1784944  md0  GPT  (872M)
3   321  freebsd-boot  (16K)
   35  17849122  freebsd-ufs  (872M)
 
 Any idea what I am doing wrong?

To the best of my knowledge, qemu is the thing you're
doing wrong :-)

I have so far not been able to boot an image created
by mkimg with a FreeBSD-hosted qemu.
o   VMware and VirtualBox are fine.
o   A non-FreeBSD hosted qemu also works fine.

If your host is running -current, make sure to set
MALLOC_CONF=junk:false. It improves behaviour on
FreeBSD for boot0/boo1.

HTH (probably not),

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


NIC driver API committed

2014-06-02 Thread Marcel Moolenaar
All,

A new NIC driver API has been committed that allows us to make the
ifnet structure an abstract type. The abstract type being 'if_t'.

The miibus(4), fxp(4), em(4) and bxe(4) drivers have been converted to
use the API already. Other drivers will follow in the coming weeks.

The conversion is mechanical and does not change the behavior of the
drivers. As such, there's no user-visible impact.

If you do run into a problem after upgrading and you're using any of
the converted drivers, please let me know. It is always possible that
the conversion introduces a bug.

To test whether the conversion introduced the problem, revert any of
the following revisions depending on the driver that gives you the
problem:
r266974 miibus(4)
r266977 fxp(4)
r266978 em(4)
r266979 bxe(4)

If you find yourself reverting r266974, please also revert the other
3 revisions as they depend on r266974.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net



signature.asc
Description: Message signed with OpenPGP using GPGMail


HEADSUP: uart(4) and serial console change

2014-04-05 Thread Marcel Moolenaar
All,

With r264175, the uart(4) driver will no longer prevent changing the baudrate
nor the CLOCAL or HUPCL control flags. What this means is that if you have a
serial console on which getty(8) is started, the settings you have in /etc/ttys
will now actually take effect!

To preserve the previous behaviour, change your /etc/ttys line for the serial
console to (for serial consoles on ttyu0):
ttyu0  /usr/libexec/getty 3wire  vt100  on  secure

You can replace 3wire to std once you've validated that you have a carrier
signal. Otherwise setting the terminal type/class to std will result in the
getty(8) process getting blocked. With a carrier signal, you'll be logged out
as soon as carrier drops (i.e. when you disconnect from the console). This is
a nice feature if security is not unimportant to you.

To change the baudrate on the fly, change the terminal type/class to any of
the 3wire. or std. types, where  is the baudrate.

And don't forget to SIGHUP init(8) after making changes, otherwise the changes
don't take effect!

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Build failure due to block_abi.h

2014-04-04 Thread Marcel Moolenaar
David,

The definition of DECLARE_BLOCK seems to trip over GCC 4.2.1 here
at Juniper. This is how we run the compiler:

/volume/fwtools/gcc/jnpr/4.2.1/amd64-juniper-junos.5/bin/amd64-juniper-junos-gcc
  -O2 -pipe   -I/b/marcelm/fbsd-head/src/lib/libc/include 
-I/b/marcelm/fbsd-head/src/lib/libc/../../include 
-I/b/marcelm/fbsd-head/src/lib/libc/amd64 -DNLS  -D__DBINTERFACE_PRIVATE 
-I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/gdtoa 
-I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/libc-vis -DINET6 
-I/b/marcelm/fbsd-head/obj/amd64/lib/libc 
-I/b/marcelm/fbsd-head/src/lib/libc/resolv -D_ACL_PRIVATE -DPOSIX_MISTAKE 
-I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/jemalloc/include 
-I/b/marcelm/fbsd-head/src/lib/libc/../../contrib/tzcode/stdtime 
-I/b/marcelm/fbsd-head/src/lib/libc/stdtime  
-I/b/marcelm/fbsd-head/src/lib/libc/locale -DBROKEN_DES -DPORTMAP -DDES_BUILTIN 
-I/b/marcelm/fbsd-head/src/lib/libc/rpc -DNS_CACHING -DSYMBOL_VERSIONING 
-D__ELF__  -Dunix  -D__unix  -D__unix__-D__FreeBSD__=9  --sysroot 
/volume/sisyphus/occam/sysroot/projects_tp5/20131031.611483/amd64  
-fno-builtin-printf   -g -nostdinc 
-isystem/b/marcelm/fbsd-head/obj/stage/amd64/usr/include 
-isystem/b/marcelm/fbsd-head/obj/stage/amd64/include  -std=gnu99  
-Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized 
-Wno-pointer-sign -I/b/marcelm/fbsd-head/src/lib/libutil 
-I/b/marcelm/fbsd-head/src/lib/msun/src -I/b/marcelm/fbsd-head/src/lib/msun/x86 
-c /b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c -o atexit.o
whatever set of flags we use here at Juniper:

This is the error:

Building /b/marcelm/fbsd-head/obj/amd64/lib/libc/atexit.o
cc1: warnings being treated as errors
/b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c:144: warning: anonymous 
struct declared inside parameter list
/b/marcelm/fbsd-head/src/lib/libc/stdlib/atexit.c:144: warning: its scope is 
only this definition or declaration, which is probably not what you want
*** Error code 1

This hurdle is a bit higher than the hurdles I normally run into
when syncing with ^/head, so I could use your expertise.

We need to continue to be able to build the sources with compilers
outside of the tree as much as possible and I haven't found a way
yet (one I don't dislike to be precise) to get this blocks stuff
to compile. It's a huge blocker right now.

Thanks,

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: Build failure due to block_abi.h

2014-04-04 Thread Marcel Moolenaar

On Apr 4, 2014, at 4:13 PM, David Chisnall thera...@freebsd.org wrote:

 It turns out that tomorrow happened 12 minutes after this email...
 
 The attached diff lets it build with -Werror for me with FreeBSD clang and 
 gcc (with -fblocks and -fno-blocks) and with ports gcc 4.7.3 and doesn't 
 clutter the code.  Please can you test it with Juniper's gcc?

It compiles fine and I immediatelt applied the fix to Juniper's tree.
Thanks for the quick turn-around!

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


LLVM bug WRT temporary files?

2014-02-13 Thread Marcel Moolenaar
Guys,

I'm running into a build break that relates to the temporary files
that LLVM creates:

svl-junos-j019% cc --version
FreeBSD clang version 3.3 (tags/RELEASE_33/final 183502) 20130610
Target: arm--freebsd10.0-gnueabi
Thread model: posix


On a build machine /tmp/b is a directory and created by user X.
I am doing a buildworld on that machine as user Y (Y=marcelm) and
I don't have permissions in /tmp/b. The build gets to usr.bin/awk
and it has a source file called b.c


The build fails with:

--- b.o ---
cc  -O -pipe  -DHAS_ISBLANK -I. 
-I/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk
 -DFOPEN_MAX=64 -std=gnu99 -Qunused-arguments  -Wsystem-headers -Werror 
-Wno-pointer-sign -Wno-empty-body -Wno-string-plus-int 
-Wno-tautological-compare -Wno-unused-value -Wno-parentheses-equality 
-Wno-unused-function -Wno-enum-conversion -Wno-switch -Wno-switch-enum 
-Wno-knr-promoted-parameter -Wno-parentheses -c 
/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/b.c
cc: error: unable to make temporary file: /tmp/b: can't make unique filename: 
Permission denied
*** [b.o] Error code 1


Running truss shows:

access(/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/b.c,0)
 = 0 (0x0)
stat(/tmp/b,{ mode=drwxr-xr-x ,inode=235520,size=512,blksize=16384 }) = 0 
(0x0)
open(/dev/random,O_RDONLY,00)  = 3 (0x3)
read(3,\M^S\M^H\^S65S'*\M-T\M-r\^A9\M-K...,128) = 128 (0x80)
close(3) = 0 (0x0)
stat(/tmp/b,{ mode=drwxr-xr-x ,inode=235520,size=512,blksize=16384 }) = 0 
(0x0)
open(/tmp/b/B8owDb,O_RDWR|O_CREAT|O_EXCL,0600) ERR#13 'Permission denied'


Now, if I compile another file, I get:

access(/b/marcelm/buildbot/FreeBSD_arm_arm/build/usr.bin/awk/../../contrib/one-true-awk/lex.c,0)
 = 0 (0x0)
stat(/tmp/lex,0x7fffbab0)  ERR#2 'No such file or 
directory'
open(/dev/random,O_RDONLY,00)  = 3 (0x3)
read(3,\^F\r\M-J\M-5Z\M-fK\^E\M-2'\M-1...,128) = 128 (0x80)
close(3) = 0 (0x0)
stat(/tmp,{ mode=drwxrwxrwt ,inode=2,size=9728,blksize=16384 }) = 0 (0x0)
open(/tmp/lex-pDQnPA,O_RDWR|O_CREAT|O_EXCL,0600) = 3 (0x3)
close(3) = 0 (0x0)


So for some reason when /tmp/basename exists and is a directory, then the
compiler wants to create a temporary file underneath that directory. That
looks like a bug to me. Do people concur and thus shall I file a PR?

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: LLVM bug WRT temporary files?

2014-02-13 Thread Marcel Moolenaar

On Feb 13, 2014, at 9:42 AM, David Chisnall david.chisn...@cl.cam.ac.uk wrote:

 This looks like a bug, please file an llvm PR.  The offending code seems to 
 be createUniqueEntity() in lib/Support/Unix/Path.inc, which does... 
 something.  Something weird and convoluted that seems to try to implement 
 mkstemp() / mkdtemp() in an incomprehensible way.

Will do. Thanks David,

-- 
Marcel Moolenaar
mar...@xcllnt.net




signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: svn commit: r250991 - in head: [malloc weak symbols]

2013-06-06 Thread Marcel Moolenaar
On Jun 3, 2013, at 11:29 AM, Marcel Moolenaar mar...@xcllnt.net wrote:
 
 * Even if the python code is wrong, is this one of those things that's
 going to keep biting us going forward?  Interactions between
 dlopen/dlsym/rtld/library dependencies/embedded malloc
 replacements/etc has been accumulated a large number of casualties
 over the years.
 
 Possibly. We do not seem to have ever had weak symbols for malloc()
 et al. Any shared library that exports malloc() and/or friends is
 potentially causing breakages. Those are breakages only seen on
 FreeBSD, I would think.
 
 I can do some analysis if people prefer. All it takes is the complete
 set of packages and run nm on any ELF files to see if malloc() or
 friends is defined as a global symbol to havea protential problem.
 With a bit of scripting we can come up with a list of candidates.
 We can go from there...

Ok, this is what I found:

Total packages: 23105 (stable-9-latest)
Packages with ELF files:12492
Packages with malloc definitions:   60
malloc in shared libraries: 24

boehm-gc-redirect-7.1.tbz:  ./lib/libgc-redirect.so.1
dlmalloc-2.8.4.tbz: ./lib/libdlmalloc.so.2
dmalloc-5.5.2.tbz:  ./lib/libdmalloc.so.1
./lib/libdmallocth.so.1
./lib/libdmallocthcxx.so.1
./lib/libdmallocxx.so.1
electricfence-2.2.2_2.tbz:  ./lib/libefence.so.0
gcc-4.2.5.20090325_5.tbz:   ./lib/gcc42/libmudflap.so.0
./lib/gcc42/libmudflapth.so.0
gcc-4.4.7,1.tbz:./lib/gcc44/libmudflap.so.0
./lib/gcc44/libmudflapth.so.0
gcc-4.6.3.tbz:  ./lib/gcc46/libmudflap.so.0
./lib/gcc46/libmudflapth.so.0
gcc-4.6.4.20130215.tbz: ./lib/gcc46/libmudflap.so.0
./lib/gcc46/libmudflapth.so.0
gcc-4.7.3.20130323.tbz: ./lib/gcc47/libmudflap.so.0
./lib/gcc47/libmudflapth.so.0
gcc-4.8.1.20130328.tbz: ./lib/gcc48/libmudflap.so.0
./lib/gcc48/libmudflapth.so.0
gcc-4.9.0.20130319.tbz: ./lib/gcc49/libmudflap.so.0
./lib/gcc49/libmudflapth.so.0
google-perftools-1.8.3.tbz: ./lib/libtcmalloc.so.2
./lib/libtcmalloc_and_profiler.so.2
./lib/libtcmalloc_debug.so.2
./lib/libtcmalloc_minimal.so.2
./lib/libtcmalloc_minimal_debug.so.2
graphviz-2.30.1.tbz:./lib/graphviz/libgvpr.so.2
libhoard-3.8.tbz:   ./lib/libhoard.so.1
lmdbg-1.1.0.tbz:./lib/liblmdbg.so.0.0
memcheck-0.2.4.tbz: ./lib/libmemcheck.so.2
mpatrol-1.4.8_3.tbz:./lib/libmpatrol.so.1
./lib/libmpatrolmt.so.1
ptmalloc-3.0_1.tbz: ./lib/libptmalloc.so.3
ptmalloc2-20060605_1.tbz:   ./lib/libptmalloc2.so.0
python27-2.7.3_6.tbz:   ./lib/python2.7/lib-dynload/_ctypes.so
python32-3.2.3_2.tbz:   ./lib/python3.2/lib-dynload/_ctypes.so
python33-3.3.0_2.tbz:   ./lib/python3.3/lib-dynload/_ctypes.so
spideroak-i386-4.8.3.10016.tbz: ./share/spideroak/_ctypes.so
umem-1.0.1.tbz: ./lib/libumem_malloc.so.0

Most of those are intended to replace the standard memory allocator.
The exception being: graphviz, python  spideroak.

We know python got broken and it's being fixed. This leaves 2 ports
that we should definitely analyze.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: issue with libthr?

2013-06-03 Thread Marcel Moolenaar

On Jun 2, 2013, at 8:08 AM, Waitman Gobble uzi...@da3m0n8t3r.com wrote:

 On Sun, 2 Jun 2013 10:43:35 -0400, Mark Johnston ma...@freebsd.org wrote: 
 
 On Sat, Jun 01, 2013 at 12:54:14AM -0700, Waitman Gobble wrote:
 
 Hi,
 
 I'm getting a ton of core dumps from Python and any software that uses
 Python,
 ie has USE_PYTHON_BUILD=yes in Makefile.
 
 hundreds of msgs in dmesg:
 pid 36637 (seamonkey), uid 1001: exited on signal 11 (core dumped)
 pid 36986 (seamonkey), uid 1001: exited on signal 11 (core dumped)
 pid 37054 (seamonkey), uid 1001: exited on signal 11 (core dumped)
 pid 51780 (seamonkey), uid 1001: exited on signal 11 (core dumped)
 pid 83350 (python2.7), uid 0: exited on signal 6 (core dumped)
 
 from gdb it seems to me to be libthr related? I've noticed a couple updates
 in
 May.. wonder if it's related? I've only noticed this issue in the past
 week,
 after a complete rebuild and updated.
 
 I've been running into this issue too - python 2.7 would crash when
 trying to rebuild databases/tdb and databases/py-sqlite3 with backtraces
 similar to what you have below. The python port itself hasn't changed in
 a while.
 
 Reverting r250991 and rebuilding libc solves the issue for me:
 http://svnweb.freebsd.org/base?view=revisionrevision=250991
 
 
 
 Thanks for the info, I appreciate it. I had a heck of a time getting
 database/py-sqlite3 to build as well. 
 My workaround to get it installed was to change the Makefile in WRKSRC


Can you apply the following patch to /usr/ports/lang/python27, rebuild
python, re-install and then try to build databases/py-sqlite3 again?

Index: files/patch-Modules-_ctypes-libffi-fficonfig.py.in
===
--- files/patch-Modules-_ctypes-libffi-fficonfig.py.in  (revision 0)
+++ files/patch-Modules-_ctypes-libffi-fficonfig.py.in  (working copy)
@@ -0,0 +1,10 @@
+--- Modules/_ctypes/libffi/fficonfig.py.in.orig2013-06-03 
07:16:44.0 -0700
 Modules/_ctypes/libffi/fficonfig.py.in 2013-06-03 07:17:03.0 
-0700
+@@ -1,7 +1,6 @@
+ ffi_sources = 
+ src/prep_cif.c
+ src/closures.c
+-src/dlmalloc.c
+ .split()
+ 
+ ffi_platforms = {


It seems the root cause is a broken python build that accidentally
defines malloc(), free(), at al in _ctypes.so. A longer explanation
was sent to svn-src-head@ and svn-src-all@

I expect that the patch also fixes the other problems mentioned in
this thread. It would be great if people can verify this.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [head tinderbox] failure on powerpc64/powerpc

2013-02-17 Thread Marcel Moolenaar

On Feb 16, 2013, at 2:05 PM, Dag-Erling Smørgrav d...@des.no wrote:

 FreeBSD Tinderbox tinder...@freebsd.org writes:
 cc -O2 -pipe -I/src/lib/libldns/../../contrib/ldns -std=gnu99 
 -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W 
 -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes 
 -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c 
 /src/lib/libldns/../../contrib/ldns/dnssec_verify.c -o dnssec_verify.o
 cc1: warnings being treated as errors
 /src/lib/libldns/../../contrib/ldns/dnssec_verify.c:638: warning:
 ldns_dnssec_trust_tree_print_sm' defined but not used
 *** [dnssec_verify.o] Error code 1
 
 Stop in /src/lib/libldns.
 
 Why is this happening?  The Makefile sets WARNS to 3, which adds
 -Wno-unused-function to CFLAGS, which should suppress this warning.

I don't see -Wno-unused-function above. I only see -Wno-unused-parameter.
I also don't see -Wno-parentheses-equality nor -Wno-conversion, so I
guess that means that the set of flags applicable for WARNS=3 isn't being
taken.

It looks like WARNS is in fact 3:
eris% make -V WARNS
3

Since bsd.sys.mk has grown unreadable, try unraveling the conditionals
to see if WARNS for GCC does the equivalent for CLANG. Is the problem
specific to architectures that don't use CLANG?
 
-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: ia64 r237134 netstat -r: netstat: kvm_read: Bad address

2012-07-16 Thread Marcel Moolenaar

On Jul 16, 2012, at 12:30 AM, Anton Shterenlikht wrote:

 On ia64 netstat -r broke some time
 between 8.1-release, and r237134.

Can you file a PR so that it's being tracked.
Thanks,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: ia64 r235474 panic on dump 0aLuf - / | restore -rf - : exclusive sleep mutex vnode interlock (vnode interlock) r = 0 (0xe00000001238f6e8) locked @ /usr/src/sys/kern/vfs_hash.c:79

2012-07-02 Thread Marcel Moolenaar

On Jul 2, 2012, at 5:43 AM, Anton Shterenlikht wrote:
 
 I think you're kernel is seriously screwed-up. Do you have any
 non-standard (for ia64) kernel configuration options?
 
 I didn't think so.
 The latest was this:

*snip*

Looks fine indeed. I have pretty much the same, except for the IPFILTER
options. I'm not concerned about.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: init: fatal signal: Segmentation fault

2012-07-01 Thread Marcel Moolenaar

On Jun 21, 2012, at 8:40 AM, Anton Shterenlikht wrote:

*snip*
 Trying to mount root from ufs:/dev/da2p2 [rw]...
 WARNING: / was not properly dismounted
 Jun 21 17:35:34 init: fatal signal: Segmentation fault
 Setting hostuuid: 0aa09909-35f1-11df-b7f8-00110a31e60a.
 Setting hostid: 0xc70eae4e.
 Entropy harvesting: interrupts ethernet point_to_point kickstart.
 Fast boot: skipping disk checks.

Why are you forcing a fast boot? Subsequent problems are the result
of not making your file system clean.

 mount: /dev/da2p2: R/W mount of / denied. Filesystem is not clean - run 
 fsck.: Operation not permitted
 Mounting root filesystem rw failed, startup aborted
 ERROR: ABORTING BOOT (sending SIGTERM to parent)!
 Jun 21 17:36:06 init: /bin/sh on /etc/rc terminated abnormally, going to 
 single user mode
 Jun 21 17:36:06 init: fatal signal: Segmentation fault

I don't know if there's a separate problem with init(8) dumping
core or the immediate consequence of the above.

 How can I recover from this?

boot -s and see what happens. If init(8) dies again, use a
different init(8) by setting init_path at the loader prompt.
SOmething like the following could do the trick:

set init_path=/sbin/init.bak

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: ia64 r235474 panic on dump 0aLuf - / | restore -rf - : exclusive sleep mutex vnode interlock (vnode interlock) r = 0 (0xe00000001238f6e8) locked @ /usr/src/sys/kern/vfs_hash.c:79

2012-07-01 Thread Marcel Moolenaar

On Jun 29, 2012, at 3:40 AM, Anton Shterenlikht wrote:

 # newfs /dev/da2p2
 /dev/da2p2: 16384.0MB (33554432 sectors) block size 32768, fragment size 4096
using 27 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
 super-block backups (for fsck -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112, 
 11540352, 12822592,
 14104832, 15387072, 16669312, 17951552, 19233792, 20516032, 21798272, 
 23080512, 24362752,
 25644992, 26927232, 28209472, 29491712, 30773952, 32056192, 8432
 # mount /dev/da2p2 /mnt
 # cd /mnt
 # dump 0aLuf - / | restore -rf -
 
 results in this panic:
 
 KDB: stack backtrace:
 getenv with the following non-sleepable locks held:
 exclusive sleep mutex vnode interlock (vnode interlock) r = 0 
 (0xe0001238f6e8) locked @ /usr/src/sys/kern/vfs_hash.c:79
 KDB: stack backtrace:
 getenv with the following non-sleepable locks held:
 exclusive sleep mutex vnode interlock (vnode interlock) r = 0 
 (0xe0001238f6e8) locked @ /usr/src/sys/kern/vfs_hash.c:79
 KDB: stack backtrace:
 getenv with the following
 non-sleepablefatal kernel trap (cpu 0):
 locks held:

I think you're kernel is seriously screwed-up. Do you have any
non-standard (for ia64) kernel configuration options?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-28 Thread Marcel Moolenaar

On Jun 28, 2012, at 3:10 AM, Stefan Esser wrote:
 
 All of the above is ugly, U'm afraid :(

Indeed. The only sane way is to put the metadata in a partition of its own.
Every compliant OS will respect that and consequently will not scribble over
the data unintentionally. Any other scheme that puts valuable data in some
undocumented or unregistered location is violating the GPT spec right away
and is susceptible to being clobbered unintentionally.

If the metadata is in its own partition, one can document the metadata layout
and providing a reference implementation. That way one increases the chance
that someone, somewhere may port support for it to some other OS. Lacking
widespread support for the mirroring scheme, I think that the notion that one
can safely and reliably mirror entire disks (read: mirror data not owned or
controlled by FreeBSD) is a very questionable one -- all one has to do is
boot some other OS and start modifying one of its partitions and you've
failed to achieve the objective.

My advise is to leave disk mirroring to H/W or firmware solutions and use
FreeBSD mirroring for FreeBSD partitions only. If you want to mirror the
whole disk, don't partition the disk with non-FreeBSD partitioning schemes
and partition only with FreeBSD-specific schemes or put a FreeBSD file
system on the whole disk. In other words: make the whole disk private to
FreeBSD.

Whether or not people agree with this is besides the point. All I'm saying
is that unique disk identifiers such as the UniqueMBRSignature (a 4 byte
ID written at offset 440 in the MBR) or the DiskGUID (an UUID written to
offset 56 in the GPT header) cannot, in general, be mirrored across disks
if OSes can see the mirrored disks as independent entities. One violates
the spec on grounds of making the *unique* disk identifier non-unique by
presenting OSes with multiple disks that have identical IDs.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-28 Thread Marcel Moolenaar

On Jun 28, 2012, at 10:25 AM, Pawel Jakub Dawidek wrote:

 On Thu, Jun 28, 2012 at 08:33:17AM -0700, Marcel Moolenaar wrote:
 
 On Jun 28, 2012, at 3:10 AM, Stefan Esser wrote:
 
 All of the above is ugly, U'm afraid :(
 
 Indeed. The only sane way is to put the metadata in a partition of its own.
 Every compliant OS will respect that and consequently will not scribble over
 the data unintentionally. Any other scheme that puts valuable data in some
 undocumented or unregistered location is violating the GPT spec right away
 and is susceptible to being clobbered unintentionally.
 
 If the user runs:
 
   # gpart create -s GPT /dev/mirror/foo
 
 for me it is obvious that he wants to partition the mirror device and
 not individual disks.

It could definitely be interpreted as the user knowing what he/she
wants and as such design an infrastructure around this assumption.
If users were at least as knowledgable as developers, my concerns
wouldn't be as big. But we all know how knoweldgable users can be
and kike it or not, even developers aren't gurus in everything. We
may think to know stuff, but in practice we're just as clueless in
cases as users -- more clueless even sometimes.

So you may think the intend is obvious, but you should know better.

 Let's modify gpart(8) to print a warning if GPT is configured on
 something else than raw disk. Let's the warning say that such
 configuration is non-standard and problems are expected if the disk is
 shared between other OSes.

Yes. I think we finally reached the point we should have reached
years ago. With the proper tooling, our flexible infrastructure
can be used in a safe and complaint way while still giving the
freedom to those who unwisely think they know better.

Build it and I'll concur.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-28 Thread Marcel Moolenaar

On Jun 28, 2012, at 12:49 PM, Alexander Leidinger wrote:

 On Thu, 28 Jun 2012 08:33:17 -0700 Marcel Moolenaar mar...@xcllnt.net
 wrote:
 
 My advise is to leave disk mirroring to H/W or firmware solutions and
 use FreeBSD mirroring for FreeBSD partitions only. If you want to
 mirror the whole disk, don't partition the disk with non-FreeBSD
 partitioning schemes and partition only with FreeBSD-specific schemes
 or put a FreeBSD file system on the whole disk. In other words: make
 the whole disk private to FreeBSD.
 
 If I gmirror the entire disk, I already expressed my interest to make
 the whole disk private to FreeBSD, haven't I?

No. All you've done is type some commands. There's no inherent value
in it that relays that you know what you're doing. I have no problem
accepting that you do in fact know what you're doing, but that doesn't
mean that anyone who types the same sequence of commands is as skilled
as you are -- that would be a silly inference. What you need to do is
not have it be about you, but about some random user.

 Or are you suggesting to
 convince all BIOS vendors to include the ability to boot from some kind
 of FreeBSD private partitioning scheme (not MBR as it is not
 suitable, not GPT as you are not OK to use it on a gmirror)?

I would be having less problems if the mirroring didn't force the backup
GPT header in anything but the last sector. If the metadata was somewhere
else, then we wouldn't need to kluge various places to deal with the
ambiguity and visible interoperability problems of the various tools and
OSes. Thus, it's not that I object to the mirroring per se, just to the
mirroring as it is currently implemented with gmirror.

 What about multipathing? In case the disk is attached via two paths but
 multipath is not enabled, the OS sees the same disk (and the same
 identical unique disk identifier) multiple times. Is this a violation
 of the spec too?

It's the same disk, isn't it? The OS can actually use the property
of the ID to infer that it has already seen this disk and not create
multiple device nodes.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-28 Thread Marcel Moolenaar

On Jun 28, 2012, at 4:07 PM, Pawel Jakub Dawidek wrote:
 
 I would be having less problems if the mirroring didn't force the backup
 GPT header in anything but the last sector. [...]
 
 GPT backup header is placed in the last sector of the mirror device,
 just like the user asked. Gmirror doesn't force anything. User decides
 to put GPT partitioning on the mirror device instead of raw disk.
 Gmirror doesn't even know and doesn't have to know how the user uses
 data area on the mirror device.

This really is a cop-out paragraph.

 [...] If the metadata was somewhere
 else, then we wouldn't need to kluge various places to deal with the
 ambiguity and visible interoperability problems of the various tools and
 OSes. [...]
 
 Where is somewhere else, exactly?

I already suggested a few things in this thread. Go read it.

I'm bored now, so I'll just wait for UEFI booting to be forced upon
those who mirror the whole disk with gmirror. I think that's when
we will have a more substantial and meaningful continuation of this
thread.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 26, 2012, at 10:37 AM, John Baldwin wrote:
 
 GPT really wants the backup header at the last LBA.  I know you can set it, 
 but I've interpreted that as a way to see if the primary header is correct or 
 not.  It seems to me that GPT tables created in this fashion (inside a GEOM 
 provider) will not work properly with partition editors for other OS's.  I'm 
 hesitant to encourage the use of this as I do think putting GPT inside of a 
 gmirror violates the GPT spec.

Agreed.

While it is a nice trick to use the last sector for meta data, it does
create 2 problems. 1 is mentioned above. The second is that when there's
different metadata in the first *and* the last sector, you can't decide
which is to take precedence without also looking at the other and know
how to interpret it. We have not solved this second problem at all.  We
do get reports about the problems though. At best we're handwaving or
kluging.

I think it's unwise to depend on FreeBSD-specific extensions or features
in industry-standard partitioning schemes and as such make the use of
foreign tools hard if not impossible.

A much more flexible approach is to support out-of-band configuration
data. This allows us to mirror GPT disks without having to become non-
standard as it removes the need to use the last sector for meta-data.
The ability to construct GEOM hierarchies unambiguously is very
important and our current approach has proven to not deliver on that.
This is actually impacting existing FreeBSD consumers already, like
Juniper. So, se should not go deeper into this rabbit hole. We should
finally solve this problem for real...

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 26, 2012, at 2:43 PM, Pawel Jakub Dawidek wrote:
 
 As for sharing disk with other OS. If you share the disk with OS that
 doesn't support gmirror, you shouldn't use gmirror in the first place.
 You probably want to use only formats that are recognized by all your
 OSes.

This statement is ridicuous by virtue of not being in touch with
reality and by making gmirror useless for such wide range of cases
that one can question why we have it at all.

Put differently: a mirroring class is a fairly basic and useful thing
to have. Limiting it's use is nothing but artificial and follows from
having to use the underlying provider to store metadata. This then
changes the view of the underlying providing to consumers above gmirror
in a way that makes the presence or absence of gmirror visible.
Solving the visibility problem makes gmirror useful all the time.
I see that as a better way of looking at it than simply blurting out
that you shouldn't use gmirror when certain awkward and artifical
conditions apply.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 26, 2012, at 9:50 PM, Andrey V. Elsukov wrote:

 If the primary GPT is corrupt, software must check the last LBA of the device 
 to see if it has a
 valid GPT Header and point to a valid GPT Partition Entry Array.
 
 For the FreeBSD an each GEOM provider can be treated as disk device.
 So, i don't see anything criminal if we will add some quirks in the our loader
 for the better supporting of our technologies.

You can't just re-interpret standards to match a context you know very well
isn't applicable and consequently redefine what the word device means.
You're on a slippery slope and while you may not see it as a problem, you
do make it a problem for FreeBSD users. It's our users we should be keeping
in mind when we solve problems.

 If a user wants modify GPT in the disk editor from the another OS,
 he can do it, and it should work. The result depends only from the partition 
 editor,
 it might overwrite the last sector and might don't.

Right. Another happy user that sees his/her FreeBSD installation destroyed
or degraded (no mirroring, warning messages about corrupted GPT, etc) for
no apparent reason and without any kind of warning that what he/she is doing
is potentially harmful... That's the spirit!

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 27, 2012, at 11:34 AM, Pawel Jakub Dawidek wrote:
 
 I'm sorry, Marcel, but what you describe here has nothing to do with
 reality. To be able to implement realiable mirroring you have to use
 on-disk metadata. There is no way around that. You can implement
 non-redundant GEOM classes without using on-disk metadata, but
 out-of-band configuration in case of mirroring is simply naive. How do
 you detect that components are out of sync, for example?

GEOM configuration and per-class runtime state are not to be
treated the same. Out-of-band configuration is trivial.
Per-class runtime state, like whether elements in a mirrored
configuration are in sync or not is more difficult, but does
not a priori require on-disk metadata as it's implemented now.
You can have the configuration tell the GEOM where that state
is being kept, so that you can put it in a partition on the
disks involved, or even keep it independent from the disks,
which then requires disks to be uniquely identifiable, for
sure. But that's what GPT gives you anyway.

But even without identification, you can invert the question
from how do I detect that components are out of sync to
how do I prove they are in fact in sync. That question has
a very simple O(n) answer. So, if time isn't a concern or
your storage is small, you can always scan all sectors as
such prove that the disks are in sync.

The point being: the current implementation isn't the only
one. Granted, it can easily be the simplest one or even the
best one in some cases, but that's besides the point you were
making.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 27, 2012, at 11:20 AM, Pawel Jakub Dawidek wrote:

 On Wed, Jun 27, 2012 at 10:37:11AM -0700, Marcel Moolenaar wrote:
 
 On Jun 26, 2012, at 10:37 AM, John Baldwin wrote:
 
 GPT really wants the backup header at the last LBA.  I know you can set it, 
 but I've interpreted that as a way to see if the primary header is correct 
 or 
 not.  It seems to me that GPT tables created in this fashion (inside a GEOM 
 provider) will not work properly with partition editors for other OS's.  
 I'm 
 hesitant to encourage the use of this as I do think putting GPT inside of a 
 gmirror violates the GPT spec.
 
 Agreed.
 
 Guys. This doesn't violate the GPT spec in any way. The spec is
 narrow-minded if it talks only about raw disks, but you should think
 about gmirror as pseudo-hardware RAID.

I'm sorry, but this is a contradiction. If it doesn't violate the
spec, then the spec is not narrow-minded on the grounds of what
we're discussing. If the spec *is* narrow-minded then obviously
it doesn't capture our scenario, which means that we're violating
the spec.

Clearly we're not discussing anything that falls well within the
spec, or is undebatable. This makes the whole topic dangerous
anyway. When you're in the grey area (this is only for argument's
sake -- we're in violation for sure) you're opening yourself up to
compatibility problems. Should we deliberately go there?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 27, 2012, at 12:08 PM, Christian Laursen wrote:

 On 06/27/12 16:28, John Baldwin wrote:
 On Wednesday, June 27, 2012 8:45:45 am Andrey V. Elsukov wrote:
 
 When we are in the FreeBSD, our loader can detect that device size
 is lower than it see and it will work. When primary header is OK, then
 other OSes should work with this GPT. When it isn't OK, you just can't
 load other OS :)
 
 Ah, yes.  The solution to violating standards is to make sure you never
 use standards-compliant software.  That's a great argument. :)
 
 (Although not entirely uncommon.  Standards aren't always perfect, but if
 we had a way to not gratuitously violate them it would be nice to avoid
 doing so.)
 
 To be standards compliant and allow whole-disk based mirroring to work at the 
 same time wouldn't nested GPT work like this?

GPTs don't nest.

 Nothing but FreeBSD would understand the freebsd-geom partition type, so the 
 inner GPT device should be valid and standards compliant.

If it were standards compliant, it would be discoverable by non-FreeBSD.
That clearly isn't the case -- hence it's not standards compliant. What
for example if someone wanted to share the swap partition between Linux
and FreeBSD?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 27, 2012, at 12:27 PM, Andrey V. Elsukov wrote:

 On 27.06.2012 21:55, Marcel Moolenaar wrote:
 You can't just re-interpret standards to match a context you know very well
 isn't applicable and consequently redefine what the word device means.
 You're on a slippery slope and while you may not see it as a problem, you
 do make it a problem for FreeBSD users. It's our users we should be keeping
 in mind when we solve problems.
 
 If a user wants modify GPT in the disk editor from the another OS,
 he can do it, and it should work. The result depends only from the 
 partition editor,
 it might overwrite the last sector and might don't.
 
 Right. Another happy user that sees his/her FreeBSD installation destroyed
 or degraded (no mirroring, warning messages about corrupted GPT, etc) for
 no apparent reason and without any kind of warning that what he/she is doing
 is potentially harmful... That's the spirit!
 
 Ok. Let's return back to my patches. They don't add any new methods to
 shoot in the foot. We are talking about the *FreeBSD loader*.
 This is the program that starts FreeBSD kernel. It doesn't start other
 OS. We already have many users who uses FreeBSD as a single system on
 the machine. Many of them use GPT inside of some GEOM provider.

Your patches are a continuation on a path that we're discussing isn't
necessarily the path we should be on. While you don't make things
worse from a compliance perspective, you make it worse by adding the
non-compliant behaviour to more components.

 As i understand there two parts where we haven't a consensus:
 
 1. You are against from:
 Our loader detects that primary GPT header is damaged. It tries to read
 backup GPT header from the last LBA and it detects that there is
 GEOM:: signature. It tries to read one previous sector and there is
 *valid* GPT header.

How do you know it's valid? It's in a location that is not valid
to begin with. Validity is based on rules and you're violating the
the rules without defining exactly what we call valid given the
new rules. This may seem nitpicking, but having went through the
hassle of dealing with the broken way we created the dangerously
dedicated disk, I appreciate the importance of being anal when it
comes to something that lives on non-volatile storage and gets to
be exposed to a world much larger than FreeBSD.

 2. You are against from having one fake PMBR entry by default in the
 /boot/pmbr image.

I don't understand what you're saying or what I'm being accused to
be against.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [CFC/CFT] large changes in the loader(8) code

2012-06-27 Thread Marcel Moolenaar

On Jun 27, 2012, at 1:48 PM, Andrey V. Elsukov wrote:

 On 28.06.2012 00:14, Marcel Moolenaar wrote:
 Our loader detects that primary GPT header is damaged. It tries to read
 backup GPT header from the last LBA and it detects that there is
 GEOM:: signature. It tries to read one previous sector and there is
 *valid* GPT header.
 
 How do you know it's valid? It's in a location that is not valid
 to begin with. Validity is based on rules and you're violating the
 the rules without defining exactly what we call valid given the
 new rules. This may seem nitpicking, but having went through the
 hassle of dealing with the broken way we created the dangerously
 dedicated disk, I appreciate the importance of being anal when it
 comes to something that lives on non-volatile storage and gets to
 be exposed to a world much larger than FreeBSD.
 
 So why do you not prevent to attach GEOM_PART_GPT to any providers that
 are not the disk drive? This will be the right solution to all our
 problems. Just don't create invalid GPT.

It's not even the right solution, as it prevents legit nesting
of gpart GEOMs *and* is fundamentally based on a flawed assumption
that any non-disk GEOM underneath gpart yields an invalid GPT.
Think gnop.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: r234118 uart kernel module failure: uart_cpu_eqres undefined

2012-04-17 Thread Marcel Moolenaar

On Apr 17, 2012, at 8:09 AM, John Baldwin wrote:

 On Friday, April 13, 2012 8:44:25 pm kwh...@site.uottawa.ca wrote:
 The change from sys/dev/uart/uart_cpu_{i386,amd64}.c to uart_cpu_x86.c
 probably also needs a corresponding change in the module Makefile.
 
# kldload uart
link_elf: symbol uart_cpu_eqres undefined
 
 Here's one suggestion that works for me:
 
 Index: /sys/modules/uart/Makefile
 ===
 --- /sys/modules/uart/Makefile  (revision 234249)
 +++ /sys/modules/uart/Makefile  (working copy)
 @@ -16,6 +16,8 @@
uart_if.c uart_if.h uart_subr.c uart_tty.c
 .if exists(${.CURDIR}/../../dev/uart/uart_cpu_${MACHINE}.c)
 SRCS+= uart_cpu_${MACHINE}.c
 +.elif ${MACHINE} == i386 || ${MACHINE} == amd64
 +SRCS+= uart_cpu_x86.c
 .endif
 SRCS+= bus_if.h card_if.h device_if.h isa_if.h ${ofw_bus_if} pci_if.h \
power_if.h pccarddevs.h serdev_if.h
 
 
 cc'ing Marcel (who made the uart(4) change).  I think this is correct, yes.

Oh crap. Yes.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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


[ptrace] please review follow fork/exec changes

2012-01-24 Thread Marcel Moolenaar
All,

Please review the attached changes (done by Dmitry -- CC'd) to add support for
PT_FOLLOW_EXEC and cleanup PT_FOLLOW_FORK.

I'll commit this when there are no comments/objections.
Thanks,

-- 
Marcel Moolenaar
marc...@juniper.net

Index: sys/kern/kern_exit.c

===

--- sys/kern/kern_exit.c	(revision 225189)

+++ sys/kern/kern_exit.c	(working copy)

@@ -680,7 +680,7 @@ wait4(struct thread *td, struct wait_args *uap)

  */

 void

 proc_reap(struct thread *td, struct proc *p, int *status, int options,

-struct rusage *rusage)

+struct rusage *rusage, int child)

 {

 	struct proc *q, *t;

 

@@ -720,7 +720,6 @@ proc_reap(struct thread *td, struct proc *p, int *

 	if (p-p_oppid  (t = pfind(p-p_oppid)) != NULL) {

 		PROC_LOCK(p);

 		proc_reparent(p, t);

-		p-p_pptr-p_dbg_child--;

 		p-p_oppid = 0;

 		PROC_UNLOCK(p);

 		pksignal(t, SIGCHLD, p-p_ksi);

@@ -738,7 +737,10 @@ proc_reap(struct thread *td, struct proc *p, int *

 	sx_xlock(allproc_lock);

 	LIST_REMOVE(p, p_list);	/* off zombproc */

 	sx_xunlock(allproc_lock);

-	LIST_REMOVE(p, p_sibling);

+	if (child)

+		LIST_REMOVE(p, p_sibling);

+	else

+		LIST_REMOVE(p, p_orphan);

 	leavepgrp(p);

 #ifdef PROCDESC

 	if (p-p_procdesc != NULL)

@@ -859,7 +861,7 @@ loop:

 		nfound++;

 		PROC_SLOCK(p);

 		if (p-p_state == PRS_ZOMBIE) {

-			proc_reap(td, p, status, options, rusage);

+			proc_reap(td, p, status, options, rusage, 1);

 			return (0);

 		}

 		if ((p-p_flag  P_STOPPED_SIG) 

@@ -893,16 +895,47 @@ loop:

 

 			if (status)

 *status = SIGCONT;

+		}

+		PROC_UNLOCK(p);

+	}

+	LIST_FOREACH(p, q-p_orphans, p_orphan) {

+		PROC_LOCK(p);

+		if (pid != WAIT_ANY 

+		p-p_pid != pid  p-p_pgid != -pid) {

+			PROC_UNLOCK(p);

+			continue;

+		}

+		if (p_canwait(td, p)) {

+			PROC_UNLOCK(p);

+			continue;

+		}

+

+		/*

+		 * This special case handles a kthread spawned by linux_clone

+		 * (see linux_misc.c).  The linux_wait4 and linux_waitpid

+		 * functions need to be able to distinguish between waiting

+		 * on a process and waiting on a thread.  It is a thread if

+		 * p_sigparent is not SIGCHLD, and the WLINUXCLONE option

+		 * signifies we want to wait for threads and not processes.

+		 */

+		if ((p-p_sigparent != SIGCHLD) ^

+		((options  WLINUXCLONE) != 0)) {

+			PROC_UNLOCK(p);

+			continue;

+		}

+

+		nfound++;

+		PROC_SLOCK(p);

+		if (p-p_state == PRS_ZOMBIE) {

+		  proc_reap(td, p, status, options, rusage, 0);

 			return (0);

 		}

+		PROC_SUNLOCK(p);

 		PROC_UNLOCK(p);

 	}

 	if (nfound == 0) {

 		sx_xunlock(proctree_lock);

-		if (td-td_proc-p_dbg_child)

-			return (0);

-		else

-			return (ECHILD);

+		return (ECHILD);

 	}

 	if (options  WNOHANG) {

 		sx_xunlock(proctree_lock);

@@ -932,6 +965,7 @@ proc_reparent(struct proc *child, struct proc *par

 #ifdef RACCT

 	int locked;

 #endif

+	struct proc *p;

 

 	sx_assert(proctree_lock, SX_XLOCKED);

 	PROC_LOCK_ASSERT(child, MA_OWNED);

@@ -952,5 +986,17 @@ proc_reparent(struct proc *child, struct proc *par

 	PROC_UNLOCK(child-p_pptr);

 	LIST_REMOVE(child, p_sibling);

 	LIST_INSERT_HEAD(parent-p_children, child, p_sibling);

+

+	LIST_FOREACH(p, parent-p_orphans, p_orphan) {

+		if (p == child) {

+			LIST_REMOVE(child, p_orphan);

+			break;

+		}

+	}

+	if (child-p_flag  P_TRACED) {

+		LIST_INSERT_HEAD(child-p_pptr-p_orphans, child, p_orphan);

+		PROC_UNLOCK(child);

+		PROC_LOCK(child);

+	}

 	child-p_pptr = parent;

 }

Index: sys/kern/kern_exec.c

===

--- sys/kern/kern_exec.c	(revision 225189)

+++ sys/kern/kern_exec.c	(working copy)

@@ -55,6 +55,7 @@ __FBSDID($FreeBSD$);

 #include sys/priv.h

 #include sys/proc.h

 #include sys/pioctl.h

+#include sys/ptrace.h

 #include sys/namei.h

 #include sys/resourcevar.h

 #include sys/sdt.h

@@ -895,16 +896,22 @@ exec_fail_dealloc:

 	free(imgp-freepath, M_TEMP);

 

 	if (error == 0) {

+		if ((p-p_flag  (P_TRACED | P_FOLLOWEXEC)) == 

+		(P_TRACED |	P_FOLLOWEXEC)) {

+			PROC_LOCK(p);

+			td-td_dbgflags |= TDB_EXEC;

+			PROC_UNLOCK(p);

+		}

+ 		/*

+ 		 * Stop the process here if its stop event mask has

+ 		 * the S_EXEC bit set.

+ 		 */

+ 		STOPEVENT(p, S_EXEC, 0);

+		PTRACESTOP_SC(p, td, S_PT_EXEC);

 		PROC_LOCK(p);

-		td-td_dbgflags |= TDB_EXEC;

+		td-td_dbgflags = ~TDB_EXEC;

 		PROC_UNLOCK(p);

-

-		/*

-		 * Stop the process here if its stop event mask has

-		 * the S_EXEC bit set.

-		 */

-		STOPEVENT(p, S_EXEC, 0);

-		goto done2;

+ 		goto done2;

 	}

 

 exec_fail:

Index: sys/kern/kern_fork.c

===

--- sys/kern/kern_fork.c	(revision 225189)

+++ sys/kern/kern_fork.c	(working copy)

@@ -59,6 +59,7 @@ __FBSDID($FreeBSD$);

 #include sys/proc.h

 #include sys/procdesc.h

 #include sys/pioctl.h

+#include sys/ptrace.h

 #include sys/racct.h

 #include

Re: sysinstall as a post-install tool

2012-01-03 Thread Marcel Moolenaar

On Jan 3, 2012, at 3:33 PM, Eitan Adler wrote:

 Hi,
 
 In the the recent sysinstall thread there seems to be general agreement that
 having a post-install configuration tool is a good thing. Until such a
 tool is written I think it would be a good idea to use sysinstall for
 this purpose.  I am willing to do the work to restore sysinstall and
 maintain it as a post-install tool until a new one is written.

I though sade was created for that purpose, because sysinstall was too
much tied to the installation process. If sysinstall comes back, sade
definitely has to go:


r161060 | netchild | 2006-08-07 16:35:49 -0700 (Mon, 07 Aug 2006) | 9 lines

Say welcome to 'sade', the SysAdmins Disk Editor. It's the fdisk and disklabel 
part
of sysinstall. So sysinstall may retire now, we have the important non-install 
part
of it covered.

ATM it doesn't understand GEOM stuff (like mirror, stripe, raid, ...), but 
patches
to change this and to clean it up internally are more than welcome.

Submitted by:   m...@nyitolap.hu



In general I think it's a bad idea to revive sysinstall. It doesn't
function appropriately on most architectures that FreeBSD supports
and it's definitely the opposite of what we've been working towards
for at least the last 5 years.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: possible mountroot regression

2011-10-19 Thread Marcel Moolenaar

On Oct 18, 2011, at 9:04 AM, Andriy Gapon wrote:

 on 14/10/2011 18:54 Arnaud Lacombe said the following:
 Andry Gapon wrote:
 Simple: revert to the previous behavior.  If a user enters incorrect device 
 name
 (i.e. root mounting fails), then return back to the prompt instead of 
 panicing.
 That should do the job.
 
 - Arnaud
 
 ---
 sys/kern/vfs_mountroot.c |   45 +++--
 1 files changed, 23 insertions(+), 22 deletions(-)
 
 diff --git a/sys/kern/vfs_mountroot.c b/sys/kern/vfs_mountroot.c
 index ccbcb33..ae3ffa7 100644
 --- a/sys/kern/vfs_mountroot.c
 +++ b/sys/kern/vfs_mountroot.c
 @@ -481,28 +481,29 @@ parse_dir_ask(char **conf)
  printf(\n);
  printf(  ?   List valid disk boot devices\n);
  printf(  .   Yield 1 second (for background tasks)\n);
 -printf(  empty lineAbort manual input\n);
 +printf(  x   Abort manual input)\n);
 +
 +do {
 +error = EINVAL;
 +printf(\nmountroot );
 +gets(name, sizeof(name), GETS_ECHO);
 +if (name[0] == '?') {
 +printf(\nList of GEOM managed disk devices:\n  );
 +g_dev_print();
 +continue;
 +}
 +if (name[0] == '.') {
 +pause(rmask, hz);
 +continue;
 +}
 +if (name[0] == 'x'  name[1] == '\0')
 +break;
 +mnt = name;
 +error = parse_mount(mnt);
 +if (error  0)
 +printf(Invalid specification.\n);
 +} while (error != 0);
 
 - again:
 -printf(\nmountroot );
 -gets(name, sizeof(name), GETS_ECHO);
 -if (name[0] == '\0')
 -return (0);
 -if (name[0] == '?') {
 -printf(\nList of GEOM managed disk devices:\n  );
 -g_dev_print();
 -goto again;
 -}
 -if (name[0] == '.') {
 -pause(rmask, hz);
 -goto again;
 -}
 -mnt = name;
 -error = parse_mount(mnt);
 -if (error == -1) {
 -printf(Invalid specification.\n);
 -goto again;
 -}
  return (error);
 }
 
 
 Arnaud,
 
 I like how your change fixes the regression and improves code style.
 As you've said, the 'x' change is unrelated.  I like it, but it needs to be
 discussed and committed separately.
 
 Marcel,
 
 what do you think?

I like it.

 Would you be able to commit a variant of this patch sans the 'x' part?
 

Yes, soonish. If people like the 'x' change I can do that in a followup
commit as well. I just need to know if people like it or not...

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [RFC] FDT fix for 64 bit platforms

2011-10-15 Thread Marcel Moolenaar

On Oct 15, 2011, at 9:33 AM, Jayachandran C. wrote:

 On Sat, Oct 15, 2011 at 8:43 PM, Nathan Whitehorn
 nwhiteh...@freebsd.org wrote:
 On 10/15/11 01:12, Jayachandran C. wrote:
 
 On Sat, Oct 15, 2011 at 2:01 AM, Nathan Whitehorn
 nwhiteh...@freebsd.org  wrote:
 
 On 10/14/11 14:10, Jayachandran C. wrote:
 
 I'm planning commit this -CURRENT if there an no objections.
 
 In the current implementation, phandle is used to store a pointer to
 the location inside the device tree.  Since phandle_t is u32, this
 will not work on 64 bit platforms. With this fix, the phandle is the
 offset from the start of device tree pointer 'fdtp', which will be 32
 bit.
 
 Review or testing from device tree users will be welcome.
 
 JC.
 
 Why not use offsets into the FDT rather than full pointers? I believe
 having
 phandles greater than 32 bits violates the FDT spec, and declaring that
 the
 FDT can't itself be larger than 4 GB seems reasonable.
 
 I am actually using the offset from the beginning of FDT (fdtp) as
 phandle.  I cannot use the usual fdt offset (after off_dt_struct) as
 phandle, because in that case offset of 0 is valid, but phandle 0
 should not be valid.
 
 Why shouldn't phandle 0 be valid? The invalid phandle is -1. This is one of
 the problems with our existing FDT code -- it makes all kinds of wrong
 assumptions like this about IEEE 1275.
 
 Well, the existing FDT code returns 0 as the invalid handle and I do
 not want to change that in this commit.
 
 If the return value is really wrong, we will need a bigger exercise to
 change the return value and fix any callers which are affected by that
 change.

It should be fairly easy to change the base from fdtp to the usual
fdt offset, so let me propose the following:

1.  JC commits what he has and based on the current code.
2.  We get all the facts on the table. I say this because I
read different and contradictory things (0 being an
invalid phandle in OF, negative phandles exist, etc).
3.  We change the implementation, if such is warranted, in
a separate effort.

The point really is that 0 is an invalid phandle right now,
right or wrong, and JCs changes are based on that. I see no
problem proceeding on the path we're on, while we discuss
what's the correct implementation and whether or not we
should have a course change...

Thoughts?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: possible mountroot regression

2011-10-14 Thread Marcel Moolenaar

On Oct 14, 2011, at 12:51 AM, Andriy Gapon wrote:

 on 30/08/2011 13:01 Andriy Gapon said the following:
 
 So, just to re-iterate, I think that this is indeed a regression and the one
 that could be particularly unhelpful for a new release - the time when people
 are much more likely to end up at the mountroot prompt during an 
 installation of
 a new system or an upgrade.
 
 Marcel,
 
 is there any chance that this regression can be fixed before the release?

Probably, yes. How do you want to fix this? You haven't really expressed
what you would like to see, other than mentioning that you think it's a
regression from before. Arguably, the previous behaviour had a lot to be
desired for so since you're worried about the user experience, thinking
this through is important.

 If not, then maybe it would be proper to pull the change that introduced it 
 out
 of the release branch (r214006) ?

Don't be ridiculous.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: ia64 r221488: panic: blockable sleep lock (sleep mutex) process lock @ /usr/src/sys/ia64/ia64/trap.c:562

2011-09-17 Thread Marcel Moolenaar

On Sep 16, 2011, at 11:15 AM, Anton Shterenlikht wrote:

 I know it's not exactly current anymore, but..
 
 ia64 r221488

At this point in time, I don't have any clear indications
that this is a code problem. I have found that different
optimizations tend to affect the failure mode or rate.

As such, I suspect GCC. It'll be difficult to find the bad
code.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: possible mountroot regression

2011-08-29 Thread Marcel Moolenaar

On Aug 29, 2011, at 1:21 AM, Andriy Gapon wrote:

 on 27/08/2011 18:16 Marcel Moolenaar said the following:
 
 On Aug 26, 2011, at 2:07 PM, Andriy Gapon wrote:
 
 
 It seems that after the introduction of the mountroot scripting language a 
 user
 now has exactly one chance to try to specify a correct root device at the
 mountroot prompt.  I am not sure that that is convenient/enough.
 
 This is no different from before.
 
 Are you sure?
 I remember trying multiple (incorrect) possibilities at the prompt and not
 getting the panic.  But I know that sometimes I have cases of false 
 memories,
 so _I_ am not sure.

I'm sure now that we're both not sure :-)

It's possible the failure mode varied by how the root mount
failed...

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: possible mountroot regression

2011-08-27 Thread Marcel Moolenaar

On Aug 26, 2011, at 2:07 PM, Andriy Gapon wrote:

 
 It seems that after the introduction of the mountroot scripting language a 
 user
 now has exactly one chance to try to specify a correct root device at the
 mountroot prompt.  I am not sure that that is convenient/enough.

This is no different from before.

 I suspect that the following code is the cause:
 
 static void
 vfs_mountroot_conf0(struct sbuf *sb)
 {
char *s, *tok, *mnt, *opt;
int error;
 
sbuf_printf(sb, .onfail panic\n);
 …

Yes.

It is certainly a behavior we can improve upon. It's
rather annoying to get a panic on a typo. However,
we must remain cognizant of the fact that an immediate
hard failure is what's needed at times.

Maybe a good approach is to change to .onfail retry
and extend the root mount prompt with a reboot command,
so that the user/operator is does not have to worry
about typos *and* don't have to trigger a panic just
so that he/she can initiate a reboot.

Thoughts?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: Well, there goes Windows!

2011-08-21 Thread Marcel Moolenaar

On Aug 21, 2011, at 2:32 PM, Nathan Whitehorn wrote:
 
 gpart does not support (well, anyway) changing the underlying partition table 
 format without committing changes. Replacing the partition scheme, which this 
 does, is such an operation.

Weird. I could always destroy tables, create new ones using a
different scheme and populate it with partitions without there
being a single write to disk. The commit/undo logic worked
just as well for those operations as the simpler ones. Did that
get broken or are you just mistaken?

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: Well, there goes Windows!

2011-08-21 Thread Marcel Moolenaar

On Aug 21, 2011, at 5:00 PM, Nathan Whitehorn wrote:
 
 No, it's stupider than that. When you destroy a gpart without committing, the 
 GEOM itself lingers as a (none)-type partitioning. This of course makes 
 sense, since that ghost geom is what is maintaining all the state, but 
 sometimes causes problems. For instance, it breaks some of  my lazy code that 
 identifies non-partitioned disks by seeing if there is a GEOM there. But, 
 while slightly more complicated to detect, this would not be too difficult to 
 fix.

What if gpart always creates the null scheme if no partitioning exists on the
media? Then the difference between none but uncomitted and just plain none is
gone and we can always make sure the distinction is represented in the XML.
This would also improve the current behavior of gpart show in that you don't
get to see any disks that don't have partitions right now.

 The larger problem is that this behavior means that destroying gparts 
 sometimes doesn't work at all. For instance, if you have nested partitioning 
 like MBR+BSD (or EBR) it is not possible to destroy the underlying MBR geom 
 without committing the destruction of the BSD geom. This is because the MBR 
 geom cannot be destroyed, even without committing, while it continues to have 
 children, which it does due to the ghost geom for the BSD slice.

Yup. It would be good if we can fix that…

 The regular partitioning editor only commits early in this particular case, 
 and asks about each subpartition tree separately with a big scary dialog box. 
 In the spirit of the autopartitioner, it makes one large scary dialog, and 
 always runs in early commit mode instead of potentially showing many scary 
 dialogs about partitions the user doesn't necessarily even know about. This 
 behavior could be changed, but I think is the most friendly for the case in 
 question: namely, I want to blow away everything and let the installer 
 handle all partitioning details by itself.

What about inserting a special class for doing commit/undo. The GEOM
simply keeps all modifications in memory and 1) forgets everything on
an undo operation or 2) writes all dirty sectors on a commit. This
could be used even instead of the gpart-private support, which also
removes the quirk for the null scheme.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: Well, there goes Windows!

2011-08-21 Thread Marcel Moolenaar

On Aug 21, 2011, at 6:34 PM, Nathan Whitehorn wrote:
 
 The regular partitioning editor only commits early in this particular case, 
 and asks about each subpartition tree separately with a big scary dialog 
 box. In the spirit of the autopartitioner, it makes one large scary dialog, 
 and always runs in early commit mode instead of potentially showing many 
 scary dialogs about partitions the user doesn't necessarily even know 
 about. This behavior could be changed, but I think is the most friendly for 
 the case in question: namely, I want to blow away everything and let the 
 installer handle all partitioning details by itself.
 What about inserting a special class for doing commit/undo. The GEOM
 simply keeps all modifications in memory and 1) forgets everything on
 an undo operation or 2) writes all dirty sectors on a commit. This
 could be used even instead of the gpart-private support, which also
 removes the quirk for the null scheme.
 
 
 Where would this class go? If it went below gpart (between gpart and 
 userland), then it seems like we would lose the ability of gpart to validate 
 its parameters. Who would be responsible for inserting this GEOM into the 
 stack?

Between the disk GEOM and the gpart GEOM. The gpart utility would
still interact with the GEOM is before.

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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 test under lang/perl5.14 causes panic: blockable sleep lock (sleep mutex) process lock @ /usr/src/sys/ia64/ia64/trap.c:562

2011-08-16 Thread Marcel Moolenaar

On Aug 16, 2011, at 1:12 AM, Anton Shterenlikht wrote:

 On Mon, Aug 15, 2011 at 06:34:51PM +0100, Anton Shterenlikht wrote:
 On Fri, Aug 12, 2011 at 05:45:55PM -0700, Marcel Moolenaar wrote:
 
 On Aug 12, 2011, at 7:19 AM, Anton Shterenlikht wrote:
 
 On ia64 r221488
 
 Please update to at least r223700, as that was a major stability fix.
 
 UZI uname -a
 FreeBSD mech-as221.men.bris.ac.uk 9.0-BETA1 FreeBSD 9.0-BETA1 #5 r224876: 
 Mon Aug 15 12:06:05 BST 2011 
 r...@mech-as221.men.bris.ac.uk:/usr/obj/usr/src/sys/UZI  ia64
 UZI 
 
 make test run with no panic once (though lots of errors,
 I should probably let the perl team know), and
 panicked on the second run:

Anton,

Do you have options PREEMPTON in your kernel configuration by any
chance?

The panics you report are the ones I typically get when I enable
PREEMPTION. I haven't found the root cause for this yet. There's
alsp a PR to track this particular issue.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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 test under lang/perl5.14 causes panic: blockable sleep lock (sleep mutex) process lock @ /usr/src/sys/ia64/ia64/trap.c:562

2011-08-12 Thread Marcel Moolenaar

On Aug 12, 2011, at 7:19 AM, Anton Shterenlikht wrote:

 On ia64 r221488

Please update to at least r223700, as that was a major stability fix.
Latest and greatest is preferred though.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: isp(4) timeout

2011-07-05 Thread Marcel Moolenaar

On Jul 5, 2011, at 1:39 AM, Anton Shterenlikht wrote:

 On Thu, Jun 30, 2011 at 05:11:24AM -0700, Matthew Jacob wrote:
 On 6/30/2011 3:25 AM, Anton Shterenlikht wrote:
 I see in my logs:
 
 isp0: Polled Mailbox Command (0x54) Timeout (50us) (started @ 
 isp_plogx:2122)
 isp0: Mailbox Command 'EXECUTE IOCB A64' failed (TIMEOUT)
 isp0: Chan 0 PLOGI 0x010500 failed
 isp0: Polled Mailbox Command (0x64) Timeout (25us) (started @ 
 isp_getpdb:2307)
 isp0: Mailbox Command 'GET PORT DATABASE' failed (TIMEOUT)
 
 More details please.
 
 These errors indicate failures to execute commands that try and figure 
 out what's on a fabric and then log into devices on the fabric. Knowing 
 what hardware you have (QLogic card version), what FreeBSD release you 
 are running, would help. A verbose dmesg would be useful.
 
 I got it again. But this time the network seems fine.

If you haven't updated to the latest sources, please do so.
If you did already, please make sure you don't have PREEMPTION
configured.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: isp(4) timeout

2011-06-30 Thread Marcel Moolenaar

On Jun 30, 2011, at 3:25 AM, Anton Shterenlikht wrote:

 I see in my logs:
 
 isp0: Polled Mailbox Command (0x54) Timeout (50us) (started @ 
 isp_plogx:2122)
 isp0: Mailbox Command 'EXECUTE IOCB A64' failed (TIMEOUT)

This is most likely caused by a loss of interrupt
handling. Be it masked interrupts or the inability
to have the interrupt thread running.

I have some important improvements in the pipeline
that significantly improve stability. I'm doing a
final test and then I'll commit. It may address the
issue as a side-effect.

FYI,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [head tinderbox] failure on ia64/ia64

2011-06-22 Thread Marcel Moolenaar

On Jun 22, 2011, at 4:03 PM, Jung-uk Kim wrote:
 MAKE=/usr/bin/make sh /src/sys/conf/newvers.sh LINT
 cc -c -O2 -pipe -fno-strict-aliasing  -std=c99  -Wall
 -Wredundant-decls -Wnested-externs -Wstrict-prototypes 
 -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef
 -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs
 -fdiagnostics-show-option -nostdinc  -I. -I/src/sys
 -I/src/sys/contrib/altq -I/src/sys/contrib/ia64/libuwx/src
 -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
 -fno-common -finline-limit=15000 --param inline-unit-growth=100
 --param large-function-growth=1000 -fno-builtin -mconstant-gp
 -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding -Werror 
 vers.c linking kernel
 acpi_cpu.o: In function `acpi_cpu_cx_list':
 acpi_cpu.c:(.text+0xab2): undefined reference to
 `cpu_can_deep_sleep' acpi_cpu.c:(.text+0xaf0): undefined reference
 to `cpu_can_deep_sleep' *** Error code 1
 
 Sorry, it should be fixed by r223449.  I have no idea why 
 kern_clocksource.c was excluded for ia64, though. :-(

Having a x86 focussed development community, probably...

Thanks for fixing!

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: [head tinderbox] failure on ia64/ia64

2011-06-20 Thread Marcel Moolenaar

On Jun 20, 2011, at 11:40 AM, Garrett Cooper wrote:

 On Mon, Jun 20, 2011 at 11:37 AM, FreeBSD Tinderbox
 tinder...@freebsd.org wrote:
 TB --- 2011-06-20 17:09:28 - tinderbox 2.7 running on 
 freebsd-current.sentex.ca
 TB --- 2011-06-20 17:09:28 - starting HEAD tinderbox run for ia64/ia64
 TB --- 2011-06-20 17:09:28 - cleaning the object tree
 TB --- 2011-06-20 17:09:40 - cvsupping the source tree
 TB --- 2011-06-20 17:09:40 - /usr/bin/csup -z -r 3 -g -L 1 -h 
 cvsup.sentex.ca /tinderbox/HEAD/ia64/ia64/supfile
 TB --- 2011-06-20 17:10:27 - building world
 TB --- 2011-06-20 17:10:27 - MAKEOBJDIRPREFIX=/obj
 TB --- 2011-06-20 17:10:27 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
 TB --- 2011-06-20 17:10:27 - TARGET=ia64
 TB --- 2011-06-20 17:10:27 - TARGET_ARCH=ia64
 TB --- 2011-06-20 17:10:27 - TZ=UTC
 TB --- 2011-06-20 17:10:27 - __MAKE_CONF=/dev/null
 TB --- 2011-06-20 17:10:27 - cd /src
 TB --- 2011-06-20 17:10:27 - /usr/bin/make -B buildworld
 World build started on Mon Jun 20 17:10:28 UTC 2011
 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 Mon Jun 20 18:35:55 UTC 2011
 TB --- 2011-06-20 18:35:56 - generating LINT kernel config
 TB --- 2011-06-20 18:35:56 - cd /src/sys/ia64/conf
 TB --- 2011-06-20 18:35:56 - /usr/bin/make -B LINT
 TB --- 2011-06-20 18:35:56 - building LINT kernel
 TB --- 2011-06-20 18:35:56 - MAKEOBJDIRPREFIX=/obj
 TB --- 2011-06-20 18:35:56 - PATH=/usr/bin:/usr/sbin:/bin:/sbin
 TB --- 2011-06-20 18:35:56 - TARGET=ia64
 TB --- 2011-06-20 18:35:56 - TARGET_ARCH=ia64
 TB --- 2011-06-20 18:35:56 - TZ=UTC
 TB --- 2011-06-20 18:35:56 - __MAKE_CONF=/dev/null
 TB --- 2011-06-20 18:35:56 - cd /src
 TB --- 2011-06-20 18:35:56 - /usr/bin/make -B buildkernel KERNCONF=LINT
 Kernel build for LINT started on Mon Jun 20 18:35:56 UTC 2011
 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
 [...]
 awk -f /src/sys/tools/makeobjops.awk /src/sys/kgssapi/kgss_if.m -h
 awk -f /src/sys/tools/makeobjops.awk /src/sys/libkern/iconv_converter_if.m -h
 awk -f /src/sys/tools/makeobjops.awk /src/sys/opencrypto/cryptodev_if.m -h
 awk -f /src/sys/tools/makeobjops.awk /src/sys/dev/acpica/acpi_if.m -h
 rm -f .newdep
 /usr/bin/make -V CFILES -V SYSTEM_CFILES -V GEN_CFILES |  MKDEP_CPP=cc -E 
 CC=cc xargs mkdep -a -f .newdep -O2 -pipe -fno-strict-aliasing  -std=c99  
 -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  
 -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef 
 -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs 
 -fdiagnostics-show-option -nostdinc  -I. -I/src/sys -I/src/sys/contrib/altq 
 -I/src/sys/contrib/ipfilter -I/src/sys/contrib/pf -I/src/sys/dev/ath 
 -I/src/sys/dev/ath/ath_hal -I/src/sys/contrib/ngatm -I/src/sys/dev/twa 
 -I/src/sys/gnu/fs/xfs/FreeBSD -I/src/sys/gnu/fs/xfs/FreeBSD/support 
 -I/src/sys/gnu/fs/xfs -I/src/sys/dev/cxgb -I/src/sys/dev/cxgbe 
 -I/src/sys/contrib/ia64/libuwx/src -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS 
 -include opt_global.h -fno-common -finline-limit=15000 --param 
 inline-unit-growth=100 --param large-function-growth=1000 -fno-builtin 
 -mconstant-gp -ffixed-r13 -mfixed-range=f32-f127 -fpic -ffreestanding
 /src/sys/vm/vm_page.c:2356:2: error: #error PAGE_SIZE is not supported.
 mkdep: compile failed
 *** Error code 1
 
 Stop in /obj/ia64.ia64/src/sys/LINT.
 *** Error code 1
 
 Stop in /src.
 *** Error code 1
 
r223307 broke tinderbox on ia64. What should the PAGE_SIZE be for
 that architecture?

16KB or 64KB. It's 8KB now, but that it shouldn't be.
FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: panic - Stopped at kdb_enter+0x92: [I2] addl r14=0xffffffffffe1fe38,gp ; ;

2011-06-14 Thread Marcel Moolenaar

On Jun 13, 2011, at 9:14 AM, Anton Shterenlikht wrote:

 On ia64 r221488
 
 KDB: enter: panic
 [ thread pid 1076 tid 100089 ]
 Stopped at  kdb_enter+0x92: [I2]addl r14=0xffe1fe38,gp ;;
 db

What's the panic?

Can you (next time maybe) do:
show msgbuf

Thanks,

-- 
Marcel Moolenaar
mar...@xcllnt.net


___
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: Fdisk formatting of disk having bs=1K fails

2011-04-08 Thread Marcel Moolenaar

On Apr 8, 2011, at 12:34 PM, Hans Petter Selasky wrote:

 Hi,
 
 It appears that src/sbin/fdisk.c can only read the MBR of disks having a 
 blocksize different than 512 bytes. When writing a new MBR, the below check 
 fails. Can someone having knowledge into fdisk, fix this issue and MFC to 8-
 stable? Also I'm curious about the #ifdef __ia64__ .

You can eliminate the __ia64__ conditional if you want. From the
commit log:


r95860 | peter | 2002-05-01 06:48:29 + (Wed, 01 May 2002) | 4 lines

Add a hack so that fdisk(8) can initialize an ia64 disk.  There is
no /boot/mbr to read the boot code from (ia64 does not *have* bootblocks!).
fdisk depended on magic in the /boot/mbr file to initialize some fields.


fdisk is not compiled for ia64 anymore since the introduction of gpart.
The same holds for bsdlabel. So, that means that the hack is not needed
anymore.

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [head tinderbox] failure on sparc64/sun4v

2011-03-23 Thread Marcel Moolenaar

On Mar 23, 2011, at 1:25 AM, Jeff Roberson wrote:

 I did not notice this was still failing.  I didn't realize this make universe 
 would pull in my modules.  I will fix this now.

Thanks!

powerpc and ia64 have been failing since the ofed commit as well.
FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: HEADS UP: sysinstall is no longer the default installer

2011-03-18 Thread Marcel Moolenaar

On Mar 18, 2011, at 6:51 PM, Nathan Whitehorn wrote:

 On 03/15/11 12:20, Marcel Moolenaar wrote:
 On Mar 14, 2011, at 7:13 AM, Nathan Whitehorn wrote:
 
 I just committed (r219641) changes that make the release infrastructure 
 (src/release/Makefile) use bsdinstall by default instead of sysinstall on 
 install media. A big thank you is in order to everyone who provided advice, 
 criticism, and testing for this project over the last few months!
 Thanks Nathan,
 
 I checked ia64 and it works well enough. I may come back with a tweak
 here and there after the dust settles, but so far it's more reliable
 (and a while lot simpler) than sysinstall is.
 
 Great work!
 
 Thanks! The installer doesn't yet know (and I don't know) how to set up the 
 EFI system partition on IA64, so I'll need some input (or code) from you on 
 that point to get things totally up and running.

It's not that hard in general: create a partition that is 100MB in size,
give it the right type (i.e. C12A7328-F81F-11d2-BA4B-00A0C93EC93B) and
format with dosfs. This has to be the very first partition on a boot
device.

As part of the installation, we need to copy the EFI loader to a FreeBSD
subdirectory. Adding an entry for FreeBSD to the boot menu is where it
really gets interesting. The support for writing the EFI environment exists
(see libefi), but construction an EFI device path from a device special file
probably needs some more code. Getting that to work is interesting for
installing on Intel based Apple hardware as well I would presume.

Most systems have a system partition, so copying the loader to it is the
most important aspect of getting a bootable installation.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: HEADS UP: sysinstall is no longer the default installer

2011-03-15 Thread Marcel Moolenaar

On Mar 14, 2011, at 7:13 AM, Nathan Whitehorn wrote:

 I just committed (r219641) changes that make the release infrastructure 
 (src/release/Makefile) use bsdinstall by default instead of sysinstall on 
 install media. A big thank you is in order to everyone who provided advice, 
 criticism, and testing for this project over the last few months!

Thanks Nathan,

I checked ia64 and it works well enough. I may come back with a tweak
here and there after the dust settles, but so far it's more reliable
(and a while lot simpler) than sysinstall is.

Great work!


-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [CFT][patch]cfi driver support for NOR flash arrays

2011-03-15 Thread Marcel Moolenaar

On Mar 14, 2011, at 8:09 AM, Aleksandr Rybalko wrote:

 Hi, all.
 
 proposed patch add support of NOR flash arrays to cfi driver
 http://my.ddteam.net/files/2011-03-11_cfi_flash_array_support.patch

Hi Aleksandr,

The patch is interesting, but combines a whole bunch of different
changes. Some of the changes are similar to the fixes we have at
Juniper ourselves, so getting the driver sync'd up is a good idea.
Not to mention that we have added support for the SPI interface.

Just a quick question: is an array different from 2 independent
CFI devices on the same bus? I mean: can we support an array by
having 2 driver instances?

Thanks,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: ieee denormal on ia64?

2011-02-25 Thread Marcel Moolenaar

On Feb 25, 2011, at 1:33 AM, Anton Shterenlikht wrote:

 Can somebody please confirm that denormal
 are not available on ia64, see below.

Itanium has denormals. However FP_X_DNML has not been defined,
because it's non-standard:

ns1% svn log -c121332 lib/libc/ia64/gen/fpsetmask.c 

r121332 | marcel | 2003-10-22 02:00:07 -0700 (Wed, 22 Oct 2003) | 11 lines

The FP status register allows for 6 traps to be masked. One of them,
the denormal/unnormal trap, is not a standard IEEE trap. We did
not exclude it from being returned by fpgetmask(), nor did we make
sure that fpsetmask() didn't clobber it. Since the non-IEEE trap
is not part of fp_except_t, users of ifpgetmask()/fpsetmask() would
be confronted with unexpected behaviour, one of which is a SIGFPE
for denormal/unnormal FP results.

This commit makes sure that we don't leak the denormal/unnormal mask
bit in fp_except_t and also that we don't clobber it.




-- 
Marcel Moolenaar
xcl...@mac.com



___
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: Cosmetic path to bsdinstall

2011-02-24 Thread Marcel Moolenaar

On Feb 24, 2011, at 7:00 AM, Nathan Whitehorn wrote:

 Thanks! I've received basically this patch from a couple people now. I'm 
 going to investigate whether this is a more generic way to get this 
 information (so the list doesn't grow infinitely long), and will commit this 
 if I can't. Having CAM devices be part of newbus would simplify this a very 
 great deal...

See:
http://people.freebsd.org/~marcel/gpt.diff

It was my initial attempt of creating a generic (ncurses-based)
partition editor that uses gpart. (the name of the patch relates
to the perforce branch it was done on, not the partitioning
scheme).

In it you'll find a diff for sbin/pe/disk.c that contains logic
for presenting a friendly disk name. Not complete, but maybe
good for inspiration...

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [head tinderbox] failure on ia64/ia64

2011-01-31 Thread Marcel Moolenaar

On Jan 31, 2011, at 3:51 PM, Pawel Jakub Dawidek wrote:

 On Mon, Jan 31, 2011 at 10:56:18PM +, FreeBSD Tinderbox wrote:
 [...]
 cc -O2 -pipe  -I/src/sbin/hastctl/../hastd -DINET -DINET6 -DYY_NO_UNPUT 
 -DYY_NO_INPUT -DHAVE_CRYPTO -std=gnu99 -Wsystem-headers -Werror -Wall 
 -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes 
 -Wmissing-prototypes -Wpointer-arith -Wreturn-type -Wcast-qual 
 -Wwrite-strings -Wswitch -Wshadow -Wunused-parameter -Wcast-align 
 -Wchar-subscripts -Winline -Wnested-externs -Wredundant-decls 
 -Wold-style-definition -Wno-pointer-sign -c 
 /src/sbin/hastctl/../hastd/proto_common.c
 cc1: warnings being treated as errors
 /src/sbin/hastctl/../hastd/proto_common.c: In function 
 'proto_common_descriptor_send':
 /src/sbin/hastctl/../hastd/proto_common.c:116: warning: cast increases 
 required alignment of target type
 /src/sbin/hastctl/../hastd/proto_common.c: In function 
 'proto_common_descriptor_recv':
 /src/sbin/hastctl/../hastd/proto_common.c:146: warning: cast increases 
 required alignment of target type
 /src/sbin/hastctl/../hastd/proto_common.c:149: warning: cast increases 
 required alignment of target type
 *** Error code 1
 
 Marcel, do you have an idea how one can use CMSG_NXTHDR() on ia64 with
 high WARNS? With WARNS=6 I get those errors and I've no idea how to fix
 it properly. If there is a fix, CMSG_NXTHDR() should probably be fixed,
 but maybe I'm wrong?

this warning indicates that you're casting from a pointer to type P
(P having alignment constraints Ap) to a pointer to type Q (Q having
alignment constraints Aq), and Aq  Ap. The compiler tells you that
you may end up with misaligned accesses.

If you know that the pointer satisfies Aq, you can cast through (void *)
to silence the compiler. If you cannot guarantee that, you have a bigger
problem. Solutions include packing type Q to reduce Aq or to copy the
data to a local variable.

Take the statement at line 116 for example:
*((int *)CMSG_DATA(cmsg)) = fd;

We're effectively casting from a (char *) to a (int *) and then doing
a 32-bit access (write). The easy fix (casting through (void *) is not
possible, because you cannot guarantee that the address is properly
aligned. cmsg points to memory set aside by the following local
variable:
unsigned char ctrl[CMSG_SPACE(sizeof(fd))];

There's no guarantee that the compiler will align the character array
at a 32-bit boundary (though in practice it seems to be). I have seen
this kind of construct fail on ARM and PowerPC for example.

In any case: The safest approach here is to use le32enc or be32enc
rather than casting through (void *). Obviously these function encode
using a fixed byte order when the original code is using the native
byte order of the CPU. Having native encoding functions help.

You could use bcopy as well, but the compiler is typically too smart
for its own good and it will try to optimize the call away. This
leaves you with the same misaligned access that you tried to avooid
by using bcopy(). You need to trick the compiler so that it won't
optimize the bcopy away, like:
bcopy((void *)fd, CMSG_DATA(cmsg), sizeof(fd));

HTH,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: RFC vgrind in base (and buildworld)

2011-01-21 Thread Marcel Moolenaar

On Jan 21, 2011, at 7:25 AM, Alexander Kabaev wrote:

 On Thu, 20 Jan 2011 17:11:13 -0800
 Marcel Moolenaar xcl...@mac.com wrote:
 
 
 On Jan 20, 2011, at 12:31 PM, Alexander Kabaev wrote:
 
 On Thu, 20 Jan 2011 21:17:40 +0100
 Ulrich Spörlein u...@freebsd.org wrote:
 
 Hello,
 
 Currently our buildworld relies on groff(1) and vgrind(1) being
 present in the host system. I have a patch ready that at least
 makes sure these are built during bootstrap-tools and completes the
 WITHOUT_GROFF flag.
 
 vgrind(1) is only used for two papers under share/doc and we could
 easily expand the results and commit them to svn directly,
 alleviating the need to run vgrind(1) during buildworld.
 
 OTOH, there are much more useful tools to vgrind(1) for source code
 formatting. So do we still have vgrind(1) users out there?
 
 Regards,
 Uli
 
 Why it needs to be in bootsrap tools at all? We have build tools for
 this exact purpose.
 
 Actually no. The buildtools target is there to allow building programs
 that are not installed, but are otehrwise needed to compile a program.
 These are typically little tools that create source files.
 
 The bootstrap target is the to deal with compatibility in case we
 can't use the version on the host or we don't want to depend on the
 version on the host.
 
 Then it is cross-tools, or whatever build stage that builds new gcc and
 other tools which run on host and are used to generate the final target
 binaries.

Cross-tools is what you say. Anything that has target architecture
neutral output should therefore not be build all the time as part
of cross-tools.

 The point being that bootstrap-tools target is greatly abused
 in src, with recent addition of llvm libs making it almost pandemic.

Yes, I can see bootstrap tools being abused. It started being
abused the moment it came to live :-)

But rather than abuse the other targets, I'm more inclined to
review our build system and see if we need to start making
big changes again.

In particular: Juniper is ramping up on stock FreeBSD
development and the first thing we ran into is that FreeBSD
doesn't have a good cross-development and cross-build
environment. We have hacks so that we don't have to say we
don't have it at all, but one cannot possibly believe that
what we have is good.

So, let's get everything on the table and look for ways to
improve things structurally rather than using ad-hoc or one-
off tweaks.

Is there value in having FreeBSD development ports that one
can install on a machine and thereby making it suitable for
FreeBSD (cross-) development?

In other words: do people mind if there's a one-time setup
(or upgrade) required before being able to build FreeBSD?
What if this is done automatically as part of buildworld
(i.e. installing or upgrading a port)?

If not, then we can get rid of bootstrap-tools altogether.
If the port also includes (cross-compilers) we can also rid
ourselves of cross-tools and end up with a good cross-devel
environment in the process.

Thoughts?

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: RFC vgrind in base (and buildworld)

2011-01-20 Thread Marcel Moolenaar

On Jan 20, 2011, at 12:31 PM, Alexander Kabaev wrote:

 On Thu, 20 Jan 2011 21:17:40 +0100
 Ulrich Spörlein u...@freebsd.org wrote:
 
 Hello,
 
 Currently our buildworld relies on groff(1) and vgrind(1) being
 present in the host system. I have a patch ready that at least makes
 sure these are built during bootstrap-tools and completes the
 WITHOUT_GROFF flag.
 
 vgrind(1) is only used for two papers under share/doc and we could
 easily expand the results and commit them to svn directly, alleviating
 the need to run vgrind(1) during buildworld.
 
 OTOH, there are much more useful tools to vgrind(1) for source code
 formatting. So do we still have vgrind(1) users out there?
 
 Regards,
 Uli
 
 Why it needs to be in bootsrap tools at all? We have build tools for
 this exact purpose.

Actually no. The buildtools target is there to allow building programs
that are not installed, but are otehrwise needed to compile a program.
These are typically little tools that create source files.

The bootstrap target is the to deal with compatibility in case we
can't use the version on the host or we don't want to depend on the
version on the host.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: BSDInstall: merging to HEAD

2011-01-14 Thread Marcel Moolenaar

On Jan 14, 2011, at 10:26 AM, Nathan Whitehorn wrote:

 The final architecture on which we use sysinstall, ia64, is currently 
 unsupported, because I don't know how to set up booting on those systems -- 
 patches to solve this are very much welcome.

Don't let this stop you. I'll work with you on this after the dust
has settled.

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: old references to vfs_mountroot_try()

2010-11-19 Thread Marcel Moolenaar

On Nov 19, 2010, at 2:09 AM, Sergey Kandaurov wrote:

 On 19 November 2010 02:14, Alexander Best arun...@freebsd.org wrote:
 hi there,
 
 vfs_mountroot_try() seems to have been removed, yet the src still contains
 three references to it:
 
 vfs_mount.c:386
 vfs_mount.c:723
 freebsd32_misc.c:2368
 
 
 So, what about just to rename those comments to reflect function name change?
 
 Index: sys/kern/vfs_mount.c
 ===
 --- sys/kern/vfs_mount.c(revision 215516)
 +++ sys/kern/vfs_mount.c(working copy)
 @@ -383,7 +383,7 @@
 * Filter out MNT_ROOTFS.  We do not want clients of nmount() in
 * userspace to set this flag, but we must filter it out if we want
 * MNT_UPDATE on the root file system to work.
 -* MNT_ROOTFS should only be set in the kernel in vfs_mountroot_try().
 +* MNT_ROOTFS should only be set in the kernel in parse_mount().
 */
uap-flags = ~MNT_ROOTFS;
 

Keep it vague. Just change the line to MNT_ROOTFS should only be
set by the kernel when mounting its root file system.

The parse_mount() function name has no meaning other than within
sys/kern/vfs_mountroot.c, so referring to it isn't making things
clear.

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: Panic with vfs.root.mountfrom=nfs on CURRENT (was Re: [patch] functional prototype of root mount enhancement)

2010-11-18 Thread Marcel Moolenaar

On Nov 17, 2010, at 4:10 PM, Garrett Cooper wrote:
 
 Hi Marcel,
Do you have any examples that use nfs rootfs's out of the box that
 work with the new logic that don't involve creating an mfsroot? I keep
 on running into this error with vfs.root.mountfrom=nfs (previously on
 CURRENT it would just try to mount nfs via nfs_mount in the NFS client
 without any complaints):

The syntax is $fs:$dev. For NFS $dev can be empty, leaving nfs:.
The problem is with there not being a colon after nfs in your case.

This could be a change in behaviour from before, which probably needs
a fix. I'll look into it...

I don't run into this error when I unset this variable sometimes
 (it boots up multiuser and all is happy, hunky dory when I manually
 query this variable from the pxeboot loader, but not when I don't...
 it's weird).
It seems to ignore the directives in mount.conf:
 
 # cat mount.conf
 .onfail continue
 .ask

The filename to use is /.mount.conf. Notice the period.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: libcompiler_rt now part of FreeBSD's base system

2010-11-12 Thread Marcel Moolenaar

On Nov 11, 2010, at 7:52 AM, Ed Schouten wrote:

 Hello all,
 
 I just committed libcompiler_rt.a to HEAD. Even though I don't expect
 serious issues -- especially not on the tier 1 architectures -- be sure
 to contact me in case something goes wrong. I hooked it up to the build
 in a separate commit, so if your system starts to act weird, just revert
 r215127.

I'm testing ia64, right now. I see the following:

pluto2# chroot /tank/release/current /bin/tcsh
# cd /lib
# ls -al *gcc* *compiler*
-r--r--r--  1 0  0  104952 Nov 12 15:55 libgcc_s.so.1
# cd /usr/lib
# ls -al *gcc* *compiler*
-r--r--r--  1 0  0  172434 Nov 12 15:53 libcompiler_rt.a
-r--r--r--  1 0  0  209196 Nov 12 15:53 libcompiler_rt_p.a
lrwxr-xr-x  1 0  0  16 Nov 12 15:53 libgcc.a - libcompiler_rt.a
-r--r--r--  1 0  0   60754 Nov 12 15:55 libgcc_eh.a
-r--r--r--  1 0  0   65706 Nov 12 15:55 libgcc_eh_p.a
lrwxr-xr-x  1 0  0  18 Nov 12 15:53 libgcc_p.a - libcompiler_rt_p.a
lrwxr-xr-x  1 0  0  18 Nov 12 15:55 libgcc_s.so - /lib/libgcc_s.so.1

This looks like an inconsistency to me. Aren't we
building a shared libcompiler_rt to replace the
shared libgcc? Should I worry about the EH support?

BTW: The chroot seems functional from the minimal
testing I've done so far. We're not DOA! :-)

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: multiple problems between r212316 and r212643 on ia64

2010-10-22 Thread Marcel Moolenaar

On Oct 22, 2010, at 12:52 AM, Kostik Belousov wrote:

 
 Thank you for tracking it. I will wait for your merge of the revision
 to RELENG_8 before synchronizing rtld with HEAD.

Ok. I'll try to MFC over the weekend. If you find yourself
waiting for me too long (in case I didn't do it over the
weekend), feel free to grab the revision and commit it to
-stable.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: multiple problems between r212316 and r212643 on ia64

2010-10-21 Thread Marcel Moolenaar

On Sep 16, 2010, at 3:57 AM, Anton Shterenlikht wrote:
 
 % man ls
 zcat: /usr/share/man/cat1/ls.1.gz already has .gz suffix -- unchanged
 % man man
 zcat: /usr/share/man/cat1/man.1.gz already has .gz suffix -- unchanged
 
 # cd /etc/mail
 # make start
 Starting: sendmail-submitmailwrapper: no mapping in /etc/mail/mailer.conf
 sendmail-clientmqueuemailwrapper: no mapping in /etc/mail/mailer.conf
 .
 # 
 
 # cd /usr/src
 # svn up
 svn: Can't open file '/usr/local/etc/subversion/servers': Illegal byte 
 sequence
 # 
 

This is now fixed (revision 214194).

From the commit log:

 With r169630 I disabled symbol versioning because it broke rtld.  With
 r211706 rtld got broken for ia64  powerpc64.  It was fixed for powerpc64
 with r212497.  In between, r211749 removed the exports table because the
 version script handled the exports.  But wait, symbol versioning was
 disabled on ia64.

 With exports controlled by the version script and symbol versioning
 disabled, all symbols are exported and too many symbols bind to the
 definition in rtld. Let's just say that waird things happen.

 So, enable symbol versioning on ia64 and apply a work-around for the
 SIGSEGV that triggered r169630 to begin with: when rtld relocates
 itself, it comes across r_debug_state and for some reason can't find the
 definition. This causes a failure, relocation aborts and null pointers
 galore. The work-around is to ignore the missing definition when rtld
 is relocating itself and keep going.

 Maybe with the next binutils this will all go away. Maybe not, in
 which case I still need to figure out why r_debug_state cannot be found.

 BTW: r_debug_state is in the symbol map -- I don't think any other rtld
 symbols that rtld references are in the symbol map...

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [zfs] Mounting from (...) failed with error 19

2010-10-20 Thread Marcel Moolenaar

On Oct 19, 2010, at 9:38 PM, Andrey V. Elsukov wrote:

 On 20.10.2010 2:33, Marcel Moolenaar wrote:
 What about the attached patch?  I'm going to give it a swirl soon.  The
 difference is that it tests whether dev begins with /dev/.
 
 Interesting. I've been thinking about this too, but isn't
 exactly fool-proof. When devfs is the root file system,
 you can use ufs:da0s1a to refer to the device special
 file. It seems inconsistent to have ufs:da0s1 fail when
 ufs:/dev/da0s1 works (a real scenario with USB based mass
 storage devices -- root mount is unheld as soon as umass
 is created, but before daX exists for it).
 
 This patch at least covers the problem cases with a single
 strstr(), and we may get away with the inconsistency given
 above by documenting it properly.
 
 Andrey: any thoughts?
 
 Currently usage information in parse_dir_ask() says that device should
 be specified with /dev/. But conf0 does not use /dev/. Also,  Marcel,
 do you have any plans write some documentation with examples about using
 of new features?

Yes, this will be documented.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [zfs] Mounting from (...) failed with error 19

2010-10-19 Thread Marcel Moolenaar

On Oct 18, 2010, at 10:03 PM, Andrey V. Elsukov wrote:

 On 19.10.2010 3:50, Xin LI wrote:
 With latest kernel I got:
 
  Mounting from (...) failed with error 19
 
 On boot.  The system is using pure ZFS setup.  It seems that 19 means
 ENODEV but according to the dmesg the device do exist.
 
 Yes, i have the same problem.

Can you both boot verbose and send me the output.
Also, please boot with -a and show me the console
output, as well as the output of the '?' command.

Thanks,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [zfs] Mounting from (...) failed with error 19

2010-10-19 Thread Marcel Moolenaar

On Oct 19, 2010, at 7:55 AM, Andrey V. Elsukov wrote:

 On 19.10.2010 09:03, Andrey V. Elsukov wrote:
 Mounting from (...) failed with error 19
 
 On boot.  The system is using pure ZFS setup.  It seems that 19 means
 ENODEV but according to the dmesg the device do exist.
 
 Yes, i have the same problem.
 
 I fixed it with attached patch.

Makes sense. tank (or its namesake) isn't a real device.
Feel free to commit to unbreak things, but we may want to
rethink this from a generality point of view. Listing
exceptions doesn't scale and we now have 2 (the first was
the empty device name as used by nfs, and now also zfs).

Good catch, BTW.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [zfs] Mounting from (...) failed with error 19

2010-10-19 Thread Marcel Moolenaar

On Oct 19, 2010, at 2:21 PM, Xin LI wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA256
 
 On 10/19/10 08:49, Marcel Moolenaar wrote:
 
 On Oct 19, 2010, at 7:55 AM, Andrey V. Elsukov wrote:
 
 On 19.10.2010 09:03, Andrey V. Elsukov wrote:
   Mounting from (...) failed with error 19
 
 On boot.  The system is using pure ZFS setup.  It seems that 19 means
 ENODEV but according to the dmesg the device do exist.
 
 Yes, i have the same problem.
 
 I fixed it with attached patch.
 
 Makes sense. tank (or its namesake) isn't a real device.
 Feel free to commit to unbreak things, but we may want to
 rethink this from a generality point of view. Listing
 exceptions doesn't scale and we now have 2 (the first was
 the empty device name as used by nfs, and now also zfs).
 
 Good catch, BTW.
 
 Yes good catch, it fixed the problem for me as well.
 
 What about the attached patch?  I'm going to give it a swirl soon.  The
 difference is that it tests whether dev begins with /dev/.

Interesting. I've been thinking about this too, but isn't
exactly fool-proof. When devfs is the root file system,
you can use ufs:da0s1a to refer to the device special
file. It seems inconsistent to have ufs:da0s1 fail when
ufs:/dev/da0s1 works (a real scenario with USB based mass
storage devices -- root mount is unheld as soon as umass
is created, but before daX exists for it).

This patch at least covers the problem cases with a single
strstr(), and we may get away with the inconsistency given
above by documenting it properly.

Andrey: any thoughts?

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: multiple problems between r212316 and r212643 on ia64

2010-09-16 Thread Marcel Moolenaar

On Sep 16, 2010, at 3:57 AM, Anton Shterenlikht wrote:
 # cd /usr/src
 # svn up
 svn: Can't open file '/usr/local/etc/subversion/servers': Illegal byte 
 sequence
 # 
 
 
 I think your file system is borked. Nonetheless, let me
 upgrade myself and see if I run onto it too.
 
 I did fsck -f in single user mode - all seems fine:

I see the svn problem too. I've tried to find suspicious
commits, but only found commits to libthr that make me
uncomfortable. svn is threaded, though...

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: multiple problems between r212316 and r212643 on ia64

2010-09-15 Thread Marcel Moolenaar

On Sep 15, 2010, at 8:23 AM, Anton Shterenlikht wrote:

 
 % man ls
 zcat: /usr/share/man/cat1/ls.1.gz already has .gz suffix -- unchanged
 % man man
 zcat: /usr/share/man/cat1/man.1.gz already has .gz suffix -- unchanged
 
 
 # cd /etc/mail
 # make start
 Starting: sendmail-submitmailwrapper: no mapping in /etc/mail/mailer.conf
 sendmail-clientmqueuemailwrapper: no mapping in /etc/mail/mailer.conf
 .
 # 
 
 # cd /usr/src
 # svn up
 svn: Can't open file '/usr/local/etc/subversion/servers': Illegal byte 
 sequence
 # 
 

I think your file system is borked. Nonetheless, let me
upgrade myself and see if I run onto it too.

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: r209240 ia64 - buildworld - undefined reference to `lzma_physmem'

2010-06-24 Thread Marcel Moolenaar
Sorry for the top post:

Anton,

Can check if you have /usr/local/lib/liblzma on your other machines. I have 
this nagging feeling that you're picking up a library outside of your object 
tree.

Also: can you send the contents of /etc/make.conf

Thx


-- 
Marcel (Mobile)

On Jun 24, 2010, at 1:36 AM, Anton Shterenlikht me...@bristol.ac.uk wrote:

 On Wed, Jun 23, 2010 at 04:20:18PM +0200, Dag-Erling Smørgrav wrote:
 Anton Shterenlikht me...@bristol.ac.uk writes:
 I think it's possible that at some point, in anger, I did make
 installworld after a failed, or otherwise interrupted make
 buildworld. Perhaps I got an inconsistent set of binaries as a
 result...  Would that explain an error like this?
 
 No, because at this point buildworld is using the toolchain and
 libraries that it built earlier.
 
 sorry for the delay
 
 On a clean copy of r209203
 
 Can you do
 
 % find /usr/obj/usr/src -name liblzma.a
 
 There should be at least one in /usr/obj/usr/src/lib/liblzma and one in
 /usr/obj/usr/src/tmp/usr/lib, and they should be identical.
 
 seems so:
 
 # find /usr/obj/usr/src -name liblzma.a
 /usr/obj/usr/src/tmp/usr/lib/liblzma.a
 /usr/obj/usr/src/lib/liblzma/liblzma.a
 # diff /usr/obj/usr/src/tmp/usr/lib/liblzma.a 
 /usr/obj/usr/src/lib/liblzma/liblzma.a
 # 
 
 Next, do
 
 % nm /usr/obj/usr/src/lib/liblzma/liblzma.a | grep physmem
 
 and show us the result.
 
 # nm /usr/obj/usr/src/lib/liblzma/liblzma.a | grep physmem
 hardware_physmem.o:
  T lzma_physmem
 U lzma_tuklib_physmem
 tuklib_physmem.o:
  T lzma_tuklib_physmem
 # 
 
 While you're at it, do this as well:
 
 % nm /usr/lib/liblzma.a | grep physmem
 
 # nm /usr/lib/liblzma.a | grep physmem
 nm: '/usr/lib/liblzma.a': No such file
 #
 
 Did you mean /usr/local/lib/liblzma.a ?
 
 # nm /usr/local/lib/liblzma.a|grep physmem
 #
 
 
 On my other 2 ia64 boxes, where I don't have
 this problem, the output of the last command
 is the same.
 
 
 many thanks
 anton
 
 -- 
 Anton Shterenlikht
 Room 2.6, Queen's Building
 Mech Eng Dept
 Bristol University
 University Walk, Bristol BS8 1TR, UK
 Tel: +44 (0)117 331 5944
 Fax: +44 (0)117 929 4423
___
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: r209240 ia64 - buildworld - undefined reference to `lzma_physmem'

2010-06-24 Thread Marcel Moolenaar

On Jun 24, 2010, at 8:53 AM, Dag-Erling Smørgrav d...@des.no wrote:

 Marcel Moolenaar xcl...@mac.com writes:
 Can check if you have /usr/local/lib/liblzma on your other machines. I
 have this nagging feeling that you're picking up a library outside of
 your object tree.
 
 That's what I'm working my way towards, Marcel.  Can you wait until
 Anton has answered my questions.
 

Will do. Thanks for looking into it.

-- 
Marcel (mobile)

___
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: r209240 ia64 - buildworld - undefined reference to `lzma_physmem'

2010-06-21 Thread Marcel Moolenaar

On Jun 21, 2010, at 8:04 AM, Anton Shterenlikht wrote:

 On Mon, Jun 21, 2010 at 04:45:03PM +0200, Dag-Erling Smørgrav wrote:
 jhell jh...@dataix.net writes:
 Anton Shterenlikht me...@bristol.ac.uk writes:
 What do you mean by updating your headers?
 cd /usr/src/include  make obj  make depend  make all  make install
 
 wrong.
 
 % cd /usr/src
 % make obj
 % make cleandepend
 % make depend
 % make buildincludes
 % make installincludes
 
 DES
 -- 
 Dag-Erling Smørgrav - d...@des.no
 
 Sorry, just to take one step back, why has this become
 necessary for this particular box? If /usr/obj is empty,
 and svn up, followed by svn diff, doesn't show any
 local changes, why can't I go straight to make buildworld?
 In other words, why do my headers need updating on this
 particular box, and not on other ia64 boxes?
 I must've screwed something up, haven't I?

Anton,

My suggestion would be to destroy the sandbox entirely
and simply checkout a new one from scratch, provided
you're not sharing sandboxes across NFS. I would also
manually destroy your object tree under /usr/obj (or
whereever you have it) before doing the buildworld.

It's not impossible (double negative to emphasize that
the possibility may not be big enough to worry about,
but that I don't want to go there), that you have some
corruption that is not exposed by svn diff, but that
is causing the build-breakages. A clean slate helps...

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: Removal of GEOM_BSD, GEOM_MBR, GEOM_PC98 and GEOM_SUNLABEL

2010-06-01 Thread Marcel Moolenaar

On May 31, 2010, at 3:57 AM, Tai-hwa Liang wrote:
 
  http://en.wikipedia.org/wiki/Extended_boot_record says that there may
 be another boot loader inside 0x0 ~ 0x1bd.  If that's the case, I'm
 wondering if there is any disadvantage to disable the checksumming
 against 0x60 ~ 0x1b5?

The intend was to prevent false positives. I think it's probably best
to remove the checksumming and deal with false positives differently:
such as by making sure that the partition has the right type...

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: Importing clang/LLVM into FreeBSD HEAD

2010-06-01 Thread Marcel Moolenaar

On May 31, 2010, at 12:52 AM, Roman Divacky wrote:

 Hi,
 
 I would like to propose to integrate clang/LLVM into FreeBSD HEAD
 in the near future (days, not weeks).

*nod of approval*

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: a panic on uart_z8530_class?

2010-05-08 Thread Marcel Moolenaar

On May 8, 2010, at 1:00 PM, Weongyo Jeong wrote:

 Hello,
 
 Anyone encountered this panic on recent CURRENT kernel?
 
 [r...@test ~]# uname -a
 FreeBSD test 9.0-CURRENT FreeBSD 9.0-CURRENT #16: Sun May  2 00:24:12 PDT 
 2010 r...@test:/usr/obj/usr/src/sys/GENERIC  amd64
 
 [r...@test /home/freebsd/sys/modules/bwn]# ifconfig wlan0 create wlandev bwn0
 
 Fatal trap 12: page fault while in kernel mode
 cpuid = 0; apic id = 00
 fault virtual address   = 0x0
 fault code  = supervisor read instruction, page not present
 instruction pointer = 0x20:0x0
 stack pointer   = 0x28:0xff8073cdd810
 frame pointer   = 0x28:0xff8073cdd8e0
 code segment= base 0x0, limit 0xf, type 0x1b
= DPL 0, pres 1, long 1, def32 0, gran 1
 processor eflags= interrupt enabled, resume, IOPL = 0
 current process = 1795 (ifconfig)
 [ thread pid 1795 tid 100096 ]
 Stopped at  0:  *** error reading from address 0 ***
 db bt
 Tracing pid 1795 tid 100096 td 0xff0003d8b390
 uart_z8530_class() at 0
 ifc_simple_create() at ifc_simple_create+0x89
 if_clone_createif() at if_clone_createif+0x64
 ifioctl() at ifioctl+0x685
 kern_ioctl() at kern_ioctl+0xc5
 ioctl() at ioctl+0xfd
 syscall() at syscall+0x102
 Xfast_syscall() at Xfast_syscall+0xe1
 --- syscall (54, FreeBSD ELF64, ioctl), rip = 0x800b86d0c, rsp = 
 0x7fffe2e8, rbp = 0x7fffee36 ---


I think what you have is a simple NULL function pointer
dereference (i.e. calling a function pointer that's NULL).

The uart_z8530_class shows first in the backtrace because
that symbol has address 0 (it's weak and you typically don't
have the Z8530 SCC driver on amd64), so it's being returned
when DDB looks up symbols at address 0. This then implies
that ifc_simple_create() called a NULL function pointer.

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: gpart and sector size

2010-04-08 Thread Marcel Moolenaar

On Apr 8, 2010, at 6:06 AM, Alexey Tarasov wrote:

 Hello.
 
 There is only one possibility to change sector size of physical disk (gnop -S 
 4096 ...).
 May be it is possible to add such possibility to gpart? e.g. gpart create -S 
 4096 -t gpt ad0?
 It will help all unlucky WD Advanced Format disks users. :-D

A better approach is to have tunables for geom_disk to do this. This should 
absolutely
not be part of a partitioning tool. It violates everything there is to violate 
AFAICT.
FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: ia64 - panic: deadlkres: possible deadlock detected for 0xe00000001187d880, blocked for 1801437 ticks

2010-04-02 Thread Marcel Moolenaar

On Apr 2, 2010, at 3:55 PM, Anton Shterenlikht wrote:

 Hi Marcel
 
 I got this panic while trying to build some port
 on -current (csup'ed on 1-APR-2010)
 
 panic: deadlkres: possible deadlock detected for 0xe0001187d880, blocked 
 for 1801437 ticks
 
 cpuid = 1
 KDB: enter: panic
 [ thread pid 0 tid 100046 ]
 Stopped at  kdb_enter+0x92: [I2]addl r14=0xffe1fbf0,gp ;;
 db 
 db bt
 Tracing pid 0 tid 100046 td 0xe00010d4f500
 kdb_enter(0xe4853640, 0xe4853640, 0xe439d170, 0x793) 
 at kdb_enter+0x92
 panic(0xe484b490, 0xe484b6d0, 0xe0001187d880, 0x1b7cdd) 
 at panic+0x2f0
 deadlkres(0xa0007ebca2d8, 0xe0001187d880, 0xe484b410, 
 0x1b7cdd) at deadlkres+0x470
 fork_exit(0xe4893250, 0x0, 0xa000bd3db550) at fork_exit+0x110
 enter_userland() at enter_userland
 db 
 
 The panic followed a long freeze, of a sort that
 I've seen a lot on ia64 in the last couple of weeks.
 Do I get the panic (as opposed to a seemingly endless freeze)
 because of a recently added
 
   options DEADLKRES
 
 in my kernel config?

Yes, exactly.

At the db prompt, can you type:
db show thread 0xe0001187d880

This should give you something like:
Thread 11 at 0xe0001187d880:
 proc (pid 1): 0xe0301220c000
 name: kernel
 stack: 0xa0021afd2000-0xa0021afd9fff
 flags: 0x10005  pflags: 0
 state: RUNNING (CPU 0)
 priority: 52
 container lock: sched lock 0 (0xe03400ad5080) 

With the thread ID, 11 in the example above, type:
db thread 11

This should give you something like:
[ thread pid 1 tid 11 ]
kdb_enter+0x92: [I2] addl r14=0xffe279b8,gp ;;

Then type the following for a backtrace:
db bt


FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: gpart failing with no such geom after gpt corruption

2010-04-01 Thread Marcel Moolenaar

On Apr 1, 2010, at 6:23 AM, Bartosz Stec wrote:

 Unfortunately it wasn't so easy. First of all system booted, and as I 
 expected kernel message shows GPT error on ad1. Zpool was degraded but alive 
 and kicking. However, when I tried to execute any gpart command on ad1, it 
 return:
 
   ad1: no such geom

If the GPT is rejected, no GEOM is created in the kernel. It's the GEOM
that gpart(8) talks to, so the error indicates that the GPT is not accepted
after you changed the disk size. For all practical purposes ad1 doesn't have
a partitioning.

The only gpart command you can use is:
gpart create -s gpt ad1

This creates a new GPT on the disk, wiping out whatever was there...

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [PATCH] rename COMPAT_FREEBSD32

2010-03-23 Thread Marcel Moolenaar

On Mar 23, 2010, at 7:05 AM, Nathan Whitehorn wrote:

 On Mar 22, 2010, at 10:52 AM, David O'Brien wrote:
 
 / On Mon, Mar 15, 2010 at 09:00:18AM -0700, Julian Elischer wrote:
 // I certainly agree.. can it be changed please?
 // // I've waited a while to see what other opinions would be expressed 
 on this
 // topic.  I believe there is sufficient support to rename COMPAT_FREEBSD32
 // to something else based on responses in the mailing lists.
 // // I am sorry if some may wish to label this a bikeshead.  But we 
 seem to
 // have many folks disliking COMPAT_FREEBSD32.
 // // // Based on responses to the topic of COMPAT_FREEBSD32, the 
 following
 // were the suggestions offered:
 //COMPAT_ARCH32, COMPAT_ARCH_32BIT, COMPAT_32BIT_ARCH, COMPAT_32BIT,
 //COMPAT_FREEBSD32BIT
 /
 There's probably a bigger problem than just how we name it. The option
 really encodes 2 independent aspects:
 1.  Support for a 32-bit ABI (i.e. ILP32)
 2.  Support for a particular OS in ILP32.
 
 Of course 2 implies 1.
 
 For example:
 COMPAT_IA32 in sys/ia64/ia64/machdep.c enabled code to save and restore
 IA32 registers as part of cpu_switch(). In this context COMPAT_IA32 was
 perfectly named. It's now called COMPAT_FREEBSD32, which doesn't make a
 lot of sense because what if I only want to support Linux/ia32 and not
 FreeBSD/ia32 (or vice-versa if you club them under a single COMPAT_*32)?
 
 The original version of my my patch had this split, with a COMPAT_FREEBSD32
 and a COMPAT_[IA/PPC/MIPS]32. The problem is that the 32-bit FreeBSD compat is
 deeply intertwined with providing support for any 32-bit binaries at all 
 (e.g.,
 the 32-bit linuxolator depends on calling into it), so it isn't actually 
 possible
 to support having COMPAT_LINUX32 without COMPAT_FREEBSD32 without a huge 
 amount
 of work. So I scrapped that in favor of the unified name only, and we
 ended up with COMPAT_FREEBSD32.

I understand. I just wonder if it was wise to expose this dependency
across the whole source base with COMPAT_FREEBSD32 rather than keep
it local to the linuxulator. What if we remove the dependency at some
later point in time? Then what we have left is COMPAT_FREEBSD32 for
no reason other than hysterical raisins.

Anyway... Just want to point out that it's probably not a good idea
to have a single option for multiple features, even if the code has
them intertwined. Code changes easily, but options typically don't.

out-on-a-limb
Maybe we should improve our config to include dependencies, so that
one only has to add options INVARIANTS and config knows to include
options INVARIANT_SUPPORT. It's not uncommon for option/device X
to need or depend on option/device Y...
/out-on-a-limb

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: csup/svn/ldd make host unresponsive [WAS: Re: ldd leaves the machine unresponsive]

2010-03-22 Thread Marcel Moolenaar

On Mar 22, 2010, at 5:04 AM, jhell wrote:
 
 Not that this has anything to do with your problem but might turn into a 
 problem if it is not your intent. But the above command will update your src 
 to 9.0-CURRENT

That is his intend.

Anton: I fixed a bunch of things yesterday. You should be able to
upgrade to HEAD. I have one more fix pending that's needed for
preemption, but you should not hold off an upgrade for that...

FYI,

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: [PATCH] rename COMPAT_FREEBSD32

2010-03-22 Thread Marcel Moolenaar

On Mar 22, 2010, at 10:52 AM, David O'Brien wrote:

 On Mon, Mar 15, 2010 at 09:00:18AM -0700, Julian Elischer wrote:
 I certainly agree.. can it be changed please?
 
 I've waited a while to see what other opinions would be expressed on this
 topic.  I believe there is sufficient support to rename COMPAT_FREEBSD32
 to something else based on responses in the mailing lists.
 
 I am sorry if some may wish to label this a bikeshead.  But we seem to
 have many folks disliking COMPAT_FREEBSD32.
 
 
 Based on responses to the topic of COMPAT_FREEBSD32, the following
 were the suggestions offered:
COMPAT_ARCH32, COMPAT_ARCH_32BIT, COMPAT_32BIT_ARCH, COMPAT_32BIT,
COMPAT_FREEBSD32BIT

There's probably a bigger problem than just how we name it. The option
really encodes 2 independent aspects:
1.  Support for a 32-bit ABI (i.e. ILP32)
2.  Support for a particular OS in ILP32.

Of course 2 implies 1.

For example:
COMPAT_IA32 in sys/ia64/ia64/machdep.c enabled code to save and restore
IA32 registers as part of cpu_switch(). In this context COMPAT_IA32 was
perfectly named. It's now called COMPAT_FREEBSD32, which doesn't make a
lot of sense because what if I only want to support Linux/ia32 and not
FreeBSD/ia32 (or vice-versa if you club them under a single COMPAT_*32)?

-- 
Marcel Moolenaar
xcl...@mac.com



___
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: rm/csup/svn/ldd make host unresponsive [WAS: Re: ldd leaves the machine unresponsive]

2010-03-21 Thread Marcel Moolenaar

On Mar 21, 2010, at 1:27 PM, Anton Shterenlikht wrote:

 It seems the problems I've had in the last
 several days with ldd/csup/svn/rm have the
 same root cause.

I'm aware of the issue. Give me a few days to fix it. I have a
fix under test, but it exposes other problems...

-- 
Marcel Moolenaar
xcl...@mac.com



___
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


  1   2   3   4   5   >