dom
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 5283
Joined: Wed Aug 17, 2011 7:41 pm
Location: Cambridge

Re: Linux kernel is now 3.12

Tue Jul 22, 2014 1:05 pm

birdman wrote:It looks like the issue is "caused" by this change:

http://lists.infradead.org/pipermail/li ... 82402.html
Why do you believe it is that commit? Have you built a kernel with that commit reverted?

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Tue Jul 22, 2014 1:17 pm

dom wrote:Why do you believe it is that commit?
Only that this added the text that is now being reported in the error. Hence the "caused" being put in quotes.

And I can confirm the the problem goes away on reverting to the 3.10.38+ kernel.

EDIT: And the code was not in 3.10.x, but is in 3.12.x kernels.
But then there is always the question of why the kernel would be running an FP instruction anyway - particularly one that needs to be executed in virtualized emulator (software)
Last edited by birdman on Tue Jul 22, 2014 10:52 pm, edited 2 times in total.

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Tue Jul 22, 2014 5:31 pm

hartacus wrote:Noticed this in the 3.11 changelog:
RCU: Remove TINY_PREEMPT_RCU (commit)
Could this have something to do with it?
Seems unlikely. The 3.10.38+ kernel (which is not showing the problem) wasn't using this, so its removal would have made no difference.
[raspi]: zcat /proc/config.gz | grep PREEMPT
CONFIG_TREE_PREEMPT_RCU=y
# CONFIG_TINY_PREEMPT_RCU is not set
CONFIG_PREEMPT_RCU=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
CONFIG_PREEMPT_COUNT=y
# CONFIG_DEBUG_PREEMPT is not set
# CONFIG_PREEMPT_TRACER is not set
[raspi]: uname -a
Linux raspi 3.10.38+ #675 PREEMPT Sun Apr 27 18:15:12 BST 2014 armv6l GNU/Linux

LiudvikasLTU
Posts: 2
Joined: Thu Jul 24, 2014 8:48 am

Re: Linux kernel is now 3.12

Thu Jul 24, 2014 7:38 pm

How to get headers for 3.12? :(
I need to compile my TP-link WDN3200 drivers. I tried downloading older kernel (3.10-3) and I tried getting the headers from the apt get install linux-headers, but the file is messed up (all other files download except the 3.10-3 one).
I am a linux newbie still, and I don't know what to do :(

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Sat Jul 26, 2014 11:24 pm

birdman wrote:And I can confirm the the problem goes away on reverting to the 3.10.38+ kernel.
And I've now seen the BOINC manager put a process into the "preempted" state without it causing any problem with the 3.10.38+ kernel.
1) -----------
name: p2030.20130202.G176.31+00.88.C.b5s0g0.00000_3214_1
WU name: p2030.20130202.G176.31+00.88.C.b5s0g0.00000_3214
project URL: http://albert.phys.uwm.edu/
report deadline: Thu Aug 7 19:10:28 2014
ready to report: no
got server ack: no
final CPU time: 121531.900000
state: downloaded
scheduler state: preempted
exit_status: 0
signal: 0
suspended via GUI: no
active_task_state: UNINITIALIZED
app version num: 106
checkpoint CPU time: 121531.600000
current CPU time: 121531.900000
fraction done: 0.988592
swap size: 98172928.000000
working set size: 92274688.000000
estimated CPU time remaining: 1508.122022

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 2:08 am

An update of the system has updated raspberrypi-bootloader (as well as libraspberrypi-bin, libraspberrypi-dev, libraspberrypi-doc and libraspberrypi0) from version 1.20140618-1 to 1.20140908-1 whch puts me onto a 3.12.28+ kernel. This continues ot show the "BUG: unsupported FP instruction in kernel mode" error.

The command

Code: Select all

    rpi-update f6eef32dd6388c3b04dbf462bd324d93281bf397
just reports "Your firmware is already up to date" and no longer takes me back to the 3.10.38+ kernle, so I now have one which doesn't work.

Any ideas on how to revert to a working kernel now?

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 2:12 am

NOTE also that
apt-get install raspberrypi-bootloader=1.20140618-1 libraspberrypi-bin=1.20140618-1 libraspberrypi-dev=1.20140618-1 libraspberrypi-doc=1.20140618-1 libraspberrypi0=1.20140618-1
fails with the message:
E: Version '1.20140618-1' for 'raspberrypi-bootloader' was not found
E: Version '1.20140618-1' for 'libraspberrypi-bin' was not found
E: Version '1.20140618-1' for 'libraspberrypi-dev' was not found
E: Version '1.20140618-1' for 'libraspberrypi-doc' was not found
E: Version '1.20140618-1' for 'libraspberrypi0' was not found

User avatar
AndyD
Posts: 2331
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 3:02 am

birdman wrote:An update of the system has updated raspberrypi-bootloader (as well as libraspberrypi-bin, libraspberrypi-dev, libraspberrypi-doc and libraspberrypi0) from version 1.20140618-1 to 1.20140908-1 whch puts me onto a 3.12.28+ kernel. This continues ot show the "BUG: unsupported FP instruction in kernel mode" error.

The command

Code: Select all

    rpi-update f6eef32dd6388c3b04dbf462bd324d93281bf397
just reports "Your firmware is already up to date" and no longer takes me back to the 3.10.38+ kernle, so I now have one which doesn't work.

Any ideas on how to revert to a working kernel now?
When you update the firmware kernel with rpi-update it uses a file /boot/.firmware_revision to work out if you have the version you are requesting. When the firmware/kernel is updated using apt-get this file isn't part of the update. The easiest way I have found to force an update is

Code: Select all

sudo nano /boot/.firmware_revision
change one of the characters in the revision e.g.

Code: Select all

f6eef32dd6388c3b04dbf462bd324d93281bf397
to

Code: Select all

e6eef32dd6388c3b04dbf462bd324d93281bf397
save the file and then run

Code: Select all

sudo rpi-update f6eef32dd6388c3b04dbf462bd324d93281bf397

User avatar
DougieLawson
Posts: 35535
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 10:37 am

sudo mv /boot/.firmware_revision /boot/.firmware_revision~ is easier.
Note: Having anything remotely humorous in your signature is completely banned on this forum. Wear a tinfoil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

User avatar
AndyD
Posts: 2331
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:19 pm

DougieLawson wrote:sudo mv /boot/.firmware_revision /boot/.firmware_revision~ is easier.
Easier yes, but with an added undesirable (for me at least) backup.

User avatar
DougieLawson
Posts: 35535
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:22 pm

AndyD wrote: Easier yes, but with an added undesirable (for me at least) backup.
Just rm it then rpi-update will assume it has never run before.
Note: Having anything remotely humorous in your signature is completely banned on this forum. Wear a tinfoil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

User avatar
AndyD
Posts: 2331
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:23 pm

DougieLawson wrote:
AndyD wrote: Easier yes, but with an added undesirable (for me at least) backup.
Just rm it then rpi-update will assume it has never run before.
Which causes the backup.

Code: Select all

if [[ ! -f "${FW_REVFILE}" ]]; then
        echo " *** We're running for the first time"
        do_backup
else
        if [[ $(cat "${FW_REVFILE}") == "$FW_REV" ]]; then
                echo " *** Your firmware is already up to date"
                exit 0
        fi
fi

User avatar
DougieLawson
Posts: 35535
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:24 pm

One line & one # character fixes that.
Note: Having anything remotely humorous in your signature is completely banned on this forum. Wear a tinfoil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

User avatar
AndyD
Posts: 2331
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:26 pm

DougieLawson wrote:One line & one # character fixes that.
Except that the first thing that rpi-update does is updates itself.

User avatar
DougieLawson
Posts: 35535
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 12:56 pm

AndyD wrote:
DougieLawson wrote:One line & one # character fixes that.
Except that the first thing that rpi-update does is updates itself.
Not if you do that piece manually first.
Note: Having anything remotely humorous in your signature is completely banned on this forum. Wear a tinfoil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

User avatar
AndyD
Posts: 2331
Joined: Sat Jan 21, 2012 8:13 am
Location: Melbourne, Australia
Contact: Website

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 1:30 pm

DougieLawson wrote:
AndyD wrote:
DougieLawson wrote:One line & one # character fixes that.
Except that the first thing that rpi-update does is updates itself.
Not if you do that piece manually first.
Perhaps! However, this is getting a long way from your proposal that renaming /boot/.firmware_revision is a simpler solution to the issue of having the wrong git hash in .firmware_revision if you routinely use rpi-update and aptitude.

User avatar
DougieLawson
Posts: 35535
Joined: Sun Jun 16, 2013 11:19 pm
Location: Basingstoke, UK
Contact: Website Twitter

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 1:39 pm

I like to keep a copy of the .firmware_revision then I can use it to go back if things foul up.
Note: Having anything remotely humorous in your signature is completely banned on this forum. Wear a tinfoil hat and you'll get a ban.

Any DMs sent on Twitter will be answered next month.

This is a doctor free zone.

Claggy
Posts: 16
Joined: Sun Jan 26, 2014 3:15 pm

Re: Linux kernel is now 3.12

Wed Sep 17, 2014 4:18 pm

birdman wrote:An update of the system has updated raspberrypi-bootloader (as well as libraspberrypi-bin, libraspberrypi-dev, libraspberrypi-doc and libraspberrypi0) from version 1.20140618-1 to 1.20140908-1 whch puts me onto a 3.12.28+ kernel. This continues ot show the "BUG: unsupported FP instruction in kernel mode" error.
One thing to note about Boinc and the 3.12.x kernel, If you compile Boinc from the Berkeley source and run it from your Home/BOINC directory, then it works perfectly with 3.12.x kernels:

http://einstein.phys.uwm.edu/show_host_ ... d=11635026

http://albertathome.org/host/11801

This is as opposed to Boinc from the Debian source, cross compiled on Debian wheezy armhf/raspbian for Raspbian wheezy/Jessie,
I'm rather tempted to believe that something isn't quite right in the cross compile,
I did notice a change in behaviour when the repository Boinc was updated, from 7.2.4x to 7.4.x that the Seti Wu's immediately errored rather than crunching for a while before causing the 'BUG: unsupported FP instruction in kernel mode' problem.

I'll try the repository Boinc again within the next couple of days, first on wheezy, then Jessie.

Claggy

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Tue Dec 30, 2014 2:49 am

One thing to note about Boinc and the 3.12.x kernel, If you compile Boinc from the Berkeley source and run it from your Home/BOINC directory, then it works perfectly with 3.12.x kernels:
I do compile from Berkeley source code (although I run it in a dedicated /extra/BOINC location).
I'm rather tempted to believe that something isn't quite right in the cross compile,
I compile mine in a qemu chroot jail of a copy of the Raspbian files on a Debian VirtualBox machine. So there is no cross compiling - it's the Raspbian compiler and the Raspbian header files (and GBs of memory and multiple cores...). I compile both the BOINC manager and the client application that way.

And I've just updated to the 3.12.35+ kernel and it still has exactly the same problem (so I reverted the /boot files to the 3.10.38+ set).

Claggy
Posts: 16
Joined: Sun Jan 26, 2014 3:15 pm

Re: Linux kernel is now 3.12

Tue Jan 20, 2015 4:11 pm

birdman wrote:
One thing to note about Boinc and the 3.12.x kernel, If you compile Boinc from the Berkeley source and run it from your Home/BOINC directory, then it works perfectly with 3.12.x kernels:
I do compile from Berkeley source code (although I run it in a dedicated /extra/BOINC location).
I'm rather tempted to believe that something isn't quite right in the cross compile,
I compile mine in a qemu chroot jail of a copy of the Raspbian files on a Debian VirtualBox machine. So there is no cross compiling - it's the Raspbian compiler and the Raspbian header files (and GBs of memory and multiple cores...). I compile both the BOINC manager and the client application that way.

And I've just updated to the 3.12.35+ kernel and it still has exactly the same problem (so I reverted the /boot files to the 3.10.38+ set).
I compiled a Seti app at rev1924 (which is before the Arm for Android changes, because of separate issue where app doesn't produce correct results), Armv7l app runs O.K on Parallella on the four PG_v7 test Wu's,
But Armv6l version on the Pi, while it ran O.K on the first PG_v7 test Wu, it exits before completion on the 2nd PG_v7 test (three attempts so far),
setiathome_v7 7.00 Revision: 1924 g++ (Debian 4.6.3-14+rpi1) 4.6.3
libboinc: BOINC 7.5.0
exiting out of the Desktop reveals:

Message from [email protected] at Jan 20 05:58:56 ...
kernel:[28058.537242] Internal error: Oops - undefined instruction: 0 [#1] PREEMPT ARM

One other thing to Note, I've run the repository Boinc 7.0.27 O.K with Einstein and Albert at home apps O.K,
and have been running the repository 6.97 app (with fixed app_info.xml) O.K too.

Claggy

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Mon Feb 16, 2015 12:33 pm

I've just updated my RasPi from an early Model B to a (new) Model Bv2.

I've carried over the same BOINC set-up (same file-system...) and this runs fine on the new system with kernel 3.18.7-v7+.

One thing I do notice is that the old system was an ARMv6 whereas the new one is ARMv7? So perhaps the problem is in an compatibility here?

The Debian gcc used to compile things was configured with "--with-arch=armv6" (see gcc -v) but it is noticeable that the architecture tag used by the BOINC code in sched_request_* files is "armv7l-unknown-linux-gnueabihf".

DirkS
Posts: 9872
Joined: Tue Jun 19, 2012 9:46 pm
Location: Essex, UK

Re: Linux kernel is now 3.12

Mon Feb 16, 2015 12:36 pm

birdman wrote:I've just updated my RasPi from an early Model B to a (new) Model Bv2.

I've carried over the same BOINC set-up (same file-system...) and this runs fine on the new system with kernel 3.18.7-v7+.

One thing I do notice is that the old system was an ARMv6 whereas the new one is ARMv7? So perhaps the problem is in an compatibility here?

The Debian gcc used to compile things was configured with "--with-arch=armv6" (see gcc -v) but it is noticeable that the architecture tag used by the BOINC code in sched_request_* files is "armv7l-unknown-linux-gnueabihf".
Can't see how this is related to this topic. Please start a new topic for this
You'll have a much better chance of getting your question answered

birdman
Posts: 21
Joined: Fri Nov 04, 2011 1:11 am
Contact: Website

Re: Linux kernel is now 3.12

Wed Feb 18, 2015 10:14 pm

DirkS wrote:Can't see how this is related to this topic.
Because the topic is about the 3.12.x kernels causing "BUG: unsupported FP instruction in kernel mode" and I'm noting that switching the entire BOINC setup to a RasPi v2 makes it go away.
Or at least it appears to do so.
So it might be related to ARMv6 vs. ARMv7 differences, as BOINC seems to think it is on ARMv7 when it is on ARMv6 - at leats that it was it sends in requests.

Although it has since occurred to me that another difference is that on the original RasPi the jobs suffered the problem when they were pre-empted to run another one, and that doesn't seem to be happening on my RasPiv2 at the moment (as it has 4 cores, each job seems to be running through unperturbed while the manager is still able to divide time across projects).

Return to “Advanced users”