Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Dec 2015 11:56:43 +0100 (CET)
From:      =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
To:        Kevin Oberman <rkoberman@gmail.com>
Cc:        Carsten Kunze <carsten.kunze@arcor.de>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: Re: keymap set after file system decryption
Message-ID:  <alpine.BSF.2.20.1512171151260.1026@mail.fig.ol.no>
In-Reply-To: <CAN6yY1u-BStBuFiX7y4gisD=YXs2eJAEqv4S7TmPVtxh_Ww9Hg@mail.gmail.com>
References:  <37578766.236860.1450260266870.JavaMail.ngmail@webmail18.arcor-online.net> <alpine.BSF.2.20.1512161545400.1026@mail.fig.ol.no> <271086927.242379.1450280096357.JavaMail.ngmail@webmail18.arcor-online.net> <CAN6yY1u-BStBuFiX7y4gisD=YXs2eJAEqv4S7TmPVtxh_Ww9Hg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 16 Dec 2015 16:34-0800, Kevin Oberman wrote:

> On Wed, Dec 16, 2015 at 7:34 AM, Carsten Kunze <carsten.kunze@arcor.de>
> wrote:
> 
> > Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no> wrote:
> >
> > > I guess we who live outside the US should take into account that PCs
> > > are initialised by firmware to the US keyboard layout and the 437 code
> > > page, courtesy of IBM, 1981.
> >
> > In 1981 I had accepted this.  Now it's simply a bug and I wonder it has
> > not been fixed in 22 years.  I'll file a bug report.
> >
> > > I'm not sure if the creators of (U)EFI has considered other keyboard
> > > layouts and/or code pages at boot time.
> >
> > I don't care for the BIOS here, the OS has to take care of it.  It may be
> > ok that at the boot prompt only US keymap is set.  But when the rc scripts
> > are running the keymap must be set correctly (as one of the first actions).
> >
> > > A bad workaround is to copy the suitable keymap from /usr/share... to
> > > /etc, along with /usr/sbin/kbdcontrol, and add a suitable line to one
> > > or either of /etc/rc.d/geli{,2}, e.g.:
> > >
> > > /etc/kbdcontrol -l /etc/german.iso.kbd
> > >
> > > kbdcontrol is linked only to libc:
> > >
> > > $ ldd `which kbdcontrol`
> > > /usr/sbin/kbdcontrol:
> > >         libc.so.7 => /lib/libc.so.7 (0x800827000)
> >
> > In my case it's simpler since I have /usr in /, but as you descripted
> > kbdcontrol must be in /sbin and the maps in /etc in the future.
> >
> > Carsten
> >
> 
> You can specify your default keymap in your kernel config file.
> ATKBD_DFLT_KEYBD. It's possible that you might be able to set it in
> /boot/loader.conf, as well, but I'm not too sure of this. See atkbd(4).

I can confirm that neither ATKBD_DFLT_KEYMAP nor UKBD_DFLT_KEYMAP, nor 
SC_DFLT_FONT for that matter, works as intended.

I have never had any success with:

options		SC_DFLT_FONT
makeoptions	SC_DFLT_FONT=iso

options		UKBD_DFLT_KEYMAP
makeoptions	UKBD_DFLT_KEYMAP=norwegian.iso

options		ATKBD_DFLT_KEYMAP
makeoptions	ATKBD_DFLT_KEYMAP=norwegian.iso

Please prove me wrong.

-- 
+-------------------------------+------------------------------------+
| Vennlig hilsen,               | Best regards,                      |
| Trond Endrestøl,              | Trond Endrestøl,                   |
| IT-ansvarlig,                 | System administrator,              |
| Fagskolen Innlandet,          | Gjøvik Technical College, Norway,  |
| tlf. mob.   952 62 567,       | Cellular...: +47 952 62 567,       |
| sentralbord 61 14 54 00.      | Switchboard: +47 61 14 54 00.      |
+-------------------------------+------------------------------------+
From owner-freebsd-current@freebsd.org  Thu Dec 17 11:21:15 2015
Return-Path: <owner-freebsd-current@freebsd.org>
Delivered-To: freebsd-current@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5C0CFA4AD3E
 for <freebsd-current@mailman.ysv.freebsd.org>;
 Thu, 17 Dec 2015 11:21:15 +0000 (UTC)
 (envelope-from trond@fagskolen.gjovik.no)
Received: from smtp.fagskolen.gjovik.no (smtp.fagskolen.gjovik.no
 [IPv6:2001:700:1100:1:200:ff:fe00:b])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client CN "smtp.fagskolen.gjovik.no",
 Issuer "Fagskolen i Gj??vik" (not verified))
 by mx1.freebsd.org (Postfix) with ESMTPS id E140015B0
 for <freebsd-current@freebsd.org>; Thu, 17 Dec 2015 11:21:14 +0000 (UTC)
 (envelope-from trond@fagskolen.gjovik.no)
Received: from mail.fig.ol.no (localhost [127.0.0.1])
 by mail.fig.ol.no (8.15.2/8.15.2) with ESMTPS id tBHBL3Fq033320
 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO);
 Thu, 17 Dec 2015 12:21:04 +0100 (CET)
 (envelope-from trond@fagskolen.gjovik.no)
Received: from localhost (trond@localhost)
 by mail.fig.ol.no (8.15.2/8.15.2/Submit) with ESMTP id tBHBL3AC033317;
 Thu, 17 Dec 2015 12:21:03 +0100 (CET)
 (envelope-from trond@fagskolen.gjovik.no)
X-Authentication-Warning: mail.fig.ol.no: trond owned process doing -bs
Date: Thu, 17 Dec 2015 12:21:03 +0100 (CET)
From: =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
Sender: Trond.Endrestol@fagskolen.gjovik.no
To: Kevin Oberman <rkoberman@gmail.com>
cc: Carsten Kunze <carsten.kunze@arcor.de>,
 FreeBSD Current <freebsd-current@freebsd.org>
Subject: Re: Re: keymap set after file system decryption
In-Reply-To: <alpine.BSF.2.20.1512171151260.1026@mail.fig.ol.no>
Message-ID: <alpine.BSF.2.20.1512171219520.1026@mail.fig.ol.no>
References: <37578766.236860.1450260266870.JavaMail.ngmail@webmail18.arcor-online.net>
 <alpine.BSF.2.20.1512161545400.1026@mail.fig.ol.no>
 <271086927.242379.1450280096357.JavaMail.ngmail@webmail18.arcor-online.net>
 <CAN6yY1u-BStBuFiX7y4gisD=YXs2eJAEqv4S7TmPVtxh_Ww9Hg@mail.gmail.com>
 <alpine.BSF.2.20.1512171151260.1026@mail.fig.ol.no>
User-Agent: Alpine 2.20 (BSF 67 2015-01-07)
Organization: Fagskolen Innlandet
OpenPGP: url=http://fig.ol.no/~trond/trond.key
MIME-Version: 1.0
X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, AWL autolearn=ham
 autolearn_force=no version=3.4.1
X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on mail.fig.ol.no
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8BIT
X-Content-Filtered-By: Mailman/MimeDel 2.1.20
X-BeenThere: freebsd-current@freebsd.org
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: Discussions about the use of FreeBSD-current
 <freebsd-current.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current/>;
List-Post: <mailto:freebsd-current@freebsd.org>
List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Dec 2015 11:21:15 -0000

On Thu, 17 Dec 2015 11:56+0100, Trond Endrestøl wrote:

> On Wed, 16 Dec 2015 16:34-0800, Kevin Oberman wrote:
> 
> > On Wed, Dec 16, 2015 at 7:34 AM, Carsten Kunze <carsten.kunze@arcor.de>
> > wrote:
> > 
> > > Trond Endrestøl <Trond.Endrestol@fagskolen.gjovik.no> wrote:
> > >
> > > > I guess we who live outside the US should take into account that PCs
> > > > are initialised by firmware to the US keyboard layout and the 437 code
> > > > page, courtesy of IBM, 1981.
> > >
> > > In 1981 I had accepted this.  Now it's simply a bug and I wonder it has
> > > not been fixed in 22 years.  I'll file a bug report.
> > >
> > > > I'm not sure if the creators of (U)EFI has considered other keyboard
> > > > layouts and/or code pages at boot time.
> > >
> > > I don't care for the BIOS here, the OS has to take care of it.  It may be
> > > ok that at the boot prompt only US keymap is set.  But when the rc scripts
> > > are running the keymap must be set correctly (as one of the first actions).
> > >
> > > > A bad workaround is to copy the suitable keymap from /usr/share... to
> > > > /etc, along with /usr/sbin/kbdcontrol, and add a suitable line to one
> > > > or either of /etc/rc.d/geli{,2}, e.g.:
> > > >
> > > > /etc/kbdcontrol -l /etc/german.iso.kbd
> > > >
> > > > kbdcontrol is linked only to libc:
> > > >
> > > > $ ldd `which kbdcontrol`
> > > > /usr/sbin/kbdcontrol:
> > > >         libc.so.7 => /lib/libc.so.7 (0x800827000)
> > >
> > > In my case it's simpler since I have /usr in /, but as you descripted
> > > kbdcontrol must be in /sbin and the maps in /etc in the future.
> > >
> > > Carsten
> > >
> > 
> > You can specify your default keymap in your kernel config file.
> > ATKBD_DFLT_KEYBD. It's possible that you might be able to set it in
> > /boot/loader.conf, as well, but I'm not too sure of this. See atkbd(4).
> 
> I can confirm that neither ATKBD_DFLT_KEYMAP nor UKBD_DFLT_KEYMAP, nor 
> SC_DFLT_FONT for that matter, works as intended.
> 
> I have never had any success with:
> 
> options		SC_DFLT_FONT
> makeoptions	SC_DFLT_FONT=iso
> 
> options		UKBD_DFLT_KEYMAP
> makeoptions	UKBD_DFLT_KEYMAP=norwegian.iso
> 
> options		ATKBD_DFLT_KEYMAP
> makeoptions	ATKBD_DFLT_KEYMAP=norwegian.iso
> 
> Please prove me wrong.

A recent run in stable/10 using r292334, resulted in:

--- ukbd.o ---
cc  -c -O2 -pipe -fno-strict-aliasing  -std=c99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual  -Wundef -Wno-pointer-sign -fformat-extensions  -Wmissing-include-dirs -fdiagnostics-show-option  -Wno-error-tautological-compare -Wno-error-empty-body  -Wno-error-parentheses-equality -Wno-error-unused-function   -nostdinc  -I. -I/usr/src/sys -I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h  -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -mno-aes -mno-avx -mcmodel=kernel -mno-red-zone -mno-mmx -mno-sse -msoft-float  -fno-asynchronous-unwind-tables -ffreestanding -fstack-protector -gdwarf-2   /usr/src/sys/dev/usb/input/ukbd.c
/usr/src/sys/dev/usb/input/ukbd.c:1216:18: error: use of undeclared identifier 'key_map'
        sc->sc_keymap = key_map;
                        ^
/usr/src/sys/dev/usb/input/ukbd.c:1217:18: error: use of undeclared identifier 'accent_map'
        sc->sc_accmap = accent_map;
                        ^

-- 
+-------------------------------+------------------------------------+
| Vennlig hilsen,               | Best regards,                      |
| Trond Endrestøl,              | Trond Endrestøl,                   |
| IT-ansvarlig,                 | System administrator,              |
| Fagskolen Innlandet,          | Gjøvik Technical College, Norway,  |
| tlf. mob.   952 62 567,       | Cellular...: +47 952 62 567,       |
| sentralbord 61 14 54 00.      | Switchboard: +47 61 14 54 00.      |
+-------------------------------+------------------------------------+
From owner-freebsd-current@freebsd.org  Thu Dec 17 11:27:46 2015
Return-Path: <owner-freebsd-current@freebsd.org>
Delivered-To: freebsd-current@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D78DFA4923D
 for <freebsd-current@mailman.ysv.freebsd.org>;
 Thu, 17 Dec 2015 11:27:46 +0000 (UTC)
 (envelope-from onwahe@gmail.com)
Received: from mail-ig0-f175.google.com (mail-ig0-f175.google.com
 [209.85.213.175])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id B06CC1986
 for <freebsd-current@freebsd.org>; Thu, 17 Dec 2015 11:27:46 +0000 (UTC)
 (envelope-from onwahe@gmail.com)
Received: by mail-ig0-f175.google.com with SMTP id to18so9166004igc.0
 for <freebsd-current@freebsd.org>; Thu, 17 Dec 2015 03:27:46 -0800 (PST)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=WlbBvaCR8wVBzCvfOga1sRWf+pbTppfqZAiyuKn0pLE=;
 b=B13tD1SO07c81HDFn1brdCGX9064KZF7zfUASR3jLLKmGLWjorOU0npt2CDeoMCg+a
 4EJCVKR35ixnJBRtLgGTmUKXVh/9WDg/Oz1QiezqLX2e30vI3UKRyCHRkcXmmf1Yi8UO
 DiUMvhxUgqaBNIFrqVFVU4vc26DDJFvBrBPSpJ2P5d+yxE6ZXsTLVX7woBqSESAZmS+F
 vREOV5zi67okS/TTSsJok1B/PVyMpeLI/icgi0Q5yy1WPWBvI00rTQxxSAiyY9w/ik4q
 TIO1Lso1LHjU6N5tvH5oJ92KSo2as/7aY2xhOfIRS9P9Me591zd16vcphovl8VdvUd9C
 5+lA==
X-Received: by 10.50.62.20 with SMTP id u20mr3192685igr.26.1450351348893;
 Thu, 17 Dec 2015 03:22:28 -0800 (PST)
Received: from mail-ig0-f176.google.com (mail-ig0-f176.google.com.
 [209.85.213.176])
 by smtp.gmail.com with ESMTPSA id g5sm580376igc.9.2015.12.17.03.22.28
 for <freebsd-current@freebsd.org> (version=TLSv1/SSLv3 cipher=OTHER);
 Thu, 17 Dec 2015 03:22:28 -0800 (PST)
Received: by mail-ig0-f176.google.com with SMTP id m11so10854495igk.1
 for <freebsd-current@freebsd.org>; Thu, 17 Dec 2015 03:22:28 -0800 (PST)
MIME-Version: 1.0
X-Received: by 10.50.73.135 with SMTP id l7mr2896148igv.19.1450351348337; Thu,
 17 Dec 2015 03:22:28 -0800 (PST)
Received: by 10.64.130.38 with HTTP; Thu, 17 Dec 2015 03:22:28 -0800 (PST)
Date: Thu, 17 Dec 2015 12:22:28 +0100
X-Gmail-Original-Message-ID: <CAFHCsPVFwZ9MR1KnsS+k6wBC17kEkVpDSsU5UoA0-+kiia4hdg@mail.gmail.com>
Message-ID: <CAFHCsPVFwZ9MR1KnsS+k6wBC17kEkVpDSsU5UoA0-+kiia4hdg@mail.gmail.com>
Subject: CPU_EMPTY() optimalization for _NCPUWORDS == 1 on clang
From: Svatopluk Kraus <skra@freebsd.org>
To: "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Content-Type: text/plain; charset=UTF-8
X-BeenThere: freebsd-current@freebsd.org
X-Mailman-Version: 2.1.20
Precedence: list
List-Id: Discussions about the use of FreeBSD-current
 <freebsd-current.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current/>;
List-Post: <mailto:freebsd-current@freebsd.org>
List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Dec 2015 11:27:47 -0000

Hi,

I got weird disassembled code for CPU_EMPTY() on arm where cpu bit
array is just one int. The C code was compiled by clang with -O2 flag.
I expanded the macro in dummy1() to show it more clearly. The dummy2()
shows expected disassembled code.

void
dummy1(uint32_t* bits)
{
    size_t i;

    for (i = 0; i < 1; i++)
        if (bits[i])
            break;
    if (i == 1)
        tlb_flush(0);
}

void
dummy2(uint32_t* bits)
{
    size_t i;

    for (i = 0; i < 1; i++)
        if (bits[i])
            return;
    tlb_flush(0);
}

The dis-assembled code is the following:

c0556b50 <dummy1>:
c0556b50:   e3a01000    mov r1, #0
c0556b54:   e3510000    cmp r1, #0
c0556b58:   1a000004    bne c0556b70 <dummy1+0x20>
c0556b5c:   e5902000    ldr r2, [r0]
c0556b60:   e3a01001    mov r1, #1
c0556b64:   e3520000    cmp r2, #0
c0556b68:   0afffff9    beq c0556b54 <dummy1+0x4>
c0556b6c:   ea000005    b   c0556b88 <dummy1+0x38>
c0556b70:   e3510001    cmp r1, #1
c0556b74:   112fff1e    bxne    lr
c0556b78:   e3a00000    mov r0, #0
c0556b7c:   f57ff04f    dsb sy
c0556b80:   ee080f73    mcr 15, 0, r0, cr8, cr3, {3}
c0556b84:   f57ff04f    dsb sy
c0556b88:   e12fff1e    bx  lr

c0556b8c <dummy2>:
c0556b8c:   e5900000    ldr r0, [r0]
c0556b90:   e3500000    cmp r0, #0
c0556b94:   112fff1e    bxne    lr
c0556b98:   e3a00000    mov r0, #0
c0556b9c:   f57ff04f    dsb sy
c0556ba0:   ee080f73    mcr 15, 0, r0, cr8, cr3, {3}
c0556ba4:   f57ff04f    dsb sy
c0556ba8:   e12fff1e    bx  lr


I tried another thing:

void
dummy3(uint32_t* bits)
{
    size_t i;

    for (i = 0; i < 4; i++)
        if (bits[i])
            break;
    if (i == 1)
        tlb_flush(0);
}

and got

c0556bac <dummy3>:
c0556bac:   e5901000    ldr r1, [r0]
c0556bb0:   e3510000    cmp r1, #0
c0556bb4:   1a000006    bne c0556bd4 <dummy3+0x28>
c0556bb8:   e5900004    ldr r0, [r0, #4]
c0556bbc:   e3500000    cmp r0, #0
c0556bc0:   012fff1e    bxeq    lr
c0556bc4:   e3a00000    mov r0, #0
c0556bc8:   f57ff04f    dsb sy
c0556bcc:   ee080f73    mcr 15, 0, r0, cr8, cr3, {3}
c0556bd0:   f57ff04f    dsb sy
c0556bd4:   e12fff1e    bx  lr

This looks well. So, IMO, there is some small bug in clang optimalization.

Svatopluk Kraus



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.20.1512171151260.1026>