From owner-freebsd-current@freebsd.org Thu Dec 17 10:57:14 2015 Return-Path: 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 A1939A49E30 for ; Thu, 17 Dec 2015 10:57:14 +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 4C1E8197E for ; Thu, 17 Dec 2015 10:57:13 +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 tBHAuiDX033176 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 17 Dec 2015 11:56:44 +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 tBHAuhN0033173; Thu, 17 Dec 2015 11:56:43 +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 11:56:43 +0100 (CET) From: =?ISO-8859-1?Q?Trond_Endrest=F8l?= Sender: Trond.Endrestol@fagskolen.gjovik.no To: Kevin Oberman cc: Carsten Kunze , FreeBSD Current Subject: Re: Re: keymap set after file system decryption In-Reply-To: Message-ID: References: <37578766.236860.1450260266870.JavaMail.ngmail@webmail18.arcor-online.net> <271086927.242379.1450280096357.JavaMail.ngmail@webmail18.arcor-online.net> 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Dec 2015 10:57:14 -0000 On Wed, 16 Dec 2015 16:34-0800, Kevin Oberman wrote: > On Wed, Dec 16, 2015 at 7:34 AM, Carsten Kunze > wrote: > > > Trond Endrestøl 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: 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 ; 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 ; 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?= Sender: Trond.Endrestol@fagskolen.gjovik.no To: Kevin Oberman cc: Carsten Kunze , FreeBSD Current Subject: Re: Re: keymap set after file system decryption In-Reply-To: Message-ID: References: <37578766.236860.1450260266870.JavaMail.ngmail@webmail18.arcor-online.net> <271086927.242379.1450280096357.JavaMail.ngmail@webmail18.arcor-online.net> 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 > > wrote: > > > > > Trond Endrestøl 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: 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 ; 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 ; 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 ; 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 (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 ; 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: Message-ID: Subject: CPU_EMPTY() optimalization for _NCPUWORDS == 1 on clang From: Svatopluk Kraus To: "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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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 : c0556b50: e3a01000 mov r1, #0 c0556b54: e3510000 cmp r1, #0 c0556b58: 1a000004 bne c0556b70 c0556b5c: e5902000 ldr r2, [r0] c0556b60: e3a01001 mov r1, #1 c0556b64: e3520000 cmp r2, #0 c0556b68: 0afffff9 beq c0556b54 c0556b6c: ea000005 b c0556b88 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 : 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 : c0556bac: e5901000 ldr r1, [r0] c0556bb0: e3510000 cmp r1, #0 c0556bb4: 1a000006 bne c0556bd4 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