Skip to contentSkip to conversation

MIPS 4KEc with 2.6.15

DISCUSSION Jorgen Lundman 5 participants 9 messages Jan 7, 2008 – Jan 10, 2008 MIPS

lore
Share & tools
lore
#0 lore raw

Hello list,

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

fuse: Unknown symbol flush_cache_page

Should I try other mips-boards that may have this function call defined? Do I have other ways to avoid the cache coherence bug?

The /proc/ksyms is gone, so I do not think I am able to check what symbols their kernel has.

Lund

Signature · 4 lines
Jorgen Lundman       | <[email protected]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)
#1 lore raw
Quoted 5 lines · Jorgen Lundman

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

Quoted 8 lines

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

While you may not be able to change the kernel running on your board, you should be building any modules against kernel headers of the exact kernel running and configured for the platform and CPU you're using.

Mixing and matching different versions and configurations may work but frequently it will fail silently.

Ralf

#2 lore raw

Sorry, I should have said, I grabbed 2.6.15.7 to use. And after the issues, I even tried the exact 2.6.15 tarball off Sigmas FTP with the same results. It does not define flush_cache_pages for Atlas board, only SGI IPxx from what I can tell.

Quoted 17 lines · Ralf Baechle
Quoted 5 lines · Jorgen Lundman

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

While you may not be able to change the kernel running on your board, you should be building any modules against kernel headers of the exact kernel running and configured for the platform and CPU you're using.

Mixing and matching different versions and configurations may work but frequently it will fail silently.

Ralf

Signature · 4 lines
Jorgen Lundman       | <[email protected]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)
#3 lore raw
In reply to Jorgen Lundman
Quoted 12 lines · Jorgen Lundman

Hello list,

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Quoted 6 lines

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

fuse: Unknown symbol flush_cache_page

There are cache coherency issues on the 8634. You should be using the vendor's very most recent kernels. For me they seem to have resolved the cache issues.

Also as noted by others, you need the exact kernel sources if you are going to build working modules.

David Daney

#4 lore raw

Jorgen,

You should not be using the atlas definition. Try the tangox one instead.

With the flush_cache_page changes, FUSE works fine for me using 2.6.15 and Sigma's tango2 board.

Mark Lin

Quoted 30 lines · David Daney
Quoted 12 lines · Jorgen Lundman

Hello list,

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Quoted 6 lines

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

fuse: Unknown symbol flush_cache_page

There are cache coherency issues on the 8634. You should be using the vendor's very most recent kernels. For me they seem to have resolved the cache issues.

Also as noted by others, you need the exact kernel sources if you are going to build working modules.

David Daney

#5 lore raw

Yeha I would love to use tangox, but there is none with Linux, at least no tarball of the kernel I have found?

Where can I get tangox?

Lund

Quoted 39 lines · Mark Lin

Jorgen,

You should not be using the atlas definition. Try the tangox one instead.

With the flush_cache_page changes, FUSE works fine for me using 2.6.15 and Sigma's tango2 board.

Mark Lin

Quoted 28 lines · David Daney
Quoted 11 lines · Jorgen Lundman

Hello list,

I have an embedded device running 2.6.15 kernel on a MIPS 4KEc 300MHz CPU. It was configured for Sigma's tango2 board, which I know nothing about, so I picked a mips-board by random, "atlas", and found I can produce working kernel module compiles.

However, when I compiled FUSE kernel module, it behaves erratically in a way making the FUSE developer think I may have come across the cache coherency bug in arm and mips, fixed sometime around 2.6.17.

Quoted 6 lines

Since I can not change the kernel that is running, I was looking for alternate solutions. FUSE itself has a work around, that calls flush_cache_page(), but I found that mips-board atlas does not have this defined:

fuse: Unknown symbol flush_cache_page

There are cache coherency issues on the 8634. You should be using the vendor's very most recent kernels. For me they seem to have resolved the cache issues.

Also as noted by others, you need the exact kernel sources if you are going to build working modules.

David Daney

Signature · 4 lines
Jorgen Lundman       | <[email protected]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)
#6 lore raw
Quoted 7 lines · Jorgen Lundman

Yeha I would love to use tangox, but there is none with Linux, at least no tarball of the kernel I have found?

Where can I get tangox?

Lund

The Linux kernel is GPL, whoever gave you the board and the kernel should give you the kernel source.

David Daney

#7 lore raw

Sure, and I agree. We both know how often than happens, or how quickly. So, while we hold our breath for that to happen, mean while, I am hoping to find the TangoX mips-board details somewhere...

Quoted 14 lines · David Daney
Quoted 7 lines · Jorgen Lundman

Yeha I would love to use tangox, but there is none with Linux, at least no tarball of the kernel I have found?

Where can I get tangox?

Lund

The Linux kernel is GPL, whoever gave you the board and the kernel should give you the kernel source.

David Daney

Signature · 4 lines
Jorgen Lundman       | <[email protected]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)
#8 lore raw
Quoted 4 lines · Jorgen Lundman

Sure, and I agree. We both know how often than happens, or how quickly. So, while we hold our breath for that to happen, mean while, I am hoping to find the TangoX mips-board details somewhere...

If they are not helpful, you could try asking the guys from
http://gpl-violations.org/ for help.

Signature · 2 lines
Martin Michlmayr
http://www.cyrius.com/