Re: [RFC PATCH 0/13] sparc32: sunset sun4m and sun4d

2020-12-18 Thread Kjetil Oftedal
On 18/12/2020, Sam Ravnborg  wrote:
> The sun4m and sun4d based SPARC machines was very popular in the
> 90'ties and was then replaced by the more powerful sparc64
> class of machines.
> Today there is only Gentoo that to my best knowledge supports
> sparc32 and people have moved on to more capable HW.
>
> Cobham Gaisler have variants of the LEON processer that
> runs sparc32 - and they are in production today.
>
> With this patchset I propose to sunset sun4m and sun4d and move
> focus to a more streamlined support for LEON.
>
> One downside is that qemu supports sun4m - and we may loose
> some testing possibilities when sun4m is dropped. qemu supports
> LEON to some degree - I have not yet tried it out.
>
> Andreas from Gaisler have indicated that they may be more active
> upstream on sparc32 - and this will only be easier with a kernel
> where the legacy stuff is dropped.
>

This makes me a bit sad. But I guess I haven't had any time to put
into the sparc32 port
for many years, so I guess it is time to let go.

But I do believe that by doing this we should make sure we are not
putting ourselves
in a position where the sparc kernel-developers don't have access to
any real sparc32
hardware.

SUN machines were at least plentiful. The LEON-family of processors
being targeted
towards the rad-hardened market are not so much available.

Maybe Gaisler can contribute some systems, or make some available remotely?

Best regards,
Kjetil Oftedal



Re: Debian drops support for sparc

2015-07-31 Thread Kjetil Oftedal
On 30/07/2015, David Miller da...@davemloft.net wrote:
 From: Josip Rodin j...@entuzijast.net
 Date: Thu, 30 Jul 2015 21:22:30 +0200

 On Thu, Jul 30, 2015 at 06:48:24PM +0200, Sam Ravnborg wrote:
  But I think the focus should probably be on the sheer redness of the
  sparc
  columns at:
  https://release.debian.org/jessie/arch_qualify.html (current release)

 From the link above:
 
 sparc

 Upstream Support

 According to the gcc maintainer 32bit code generation as we use it is no
 longer supported upstream and we should aim for a switch to 64bit
 userland anytime soon.
 

 Is it correct that 32bit gcc is no longer maintained?
 I have seen nothing on gcc mailaing list about this.

 That's from jessie, which was already released. The said note has been
 removed from the list for stretch.

 The thing is, it makes no sense to go to a 64-bit only userland
 distribition.

 What does make sense is maybe only supporting sparc64 kernels,
 but with a userland that is built 32-bit targetting v8plus.

 The problem is that numerous other issues - haven't.

 It would be nice to narrow things down to the real issues.

 The only major blocker I know of is the kernel FPU issue, which is
 what I'm spending all of my sparc cycles on.
 --
 To unsubscribe from this list: send the line unsubscribe sparclinux in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


Hi,

As far as I remember Debian dropped Sparc32 support quite a few years ago.
So I guess what is being dropped this time around is the official support for
64-bit kernel + 32-bit/v8plus userland.

Then only the unofficial port of 64-bit kernel + 64-bit userland remains.

Regards,
Kjetil Oftedal


-- 
To UNSUBSCRIBE, email to debian-sparc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
https://lists.debian.org/CALMQjD-REfcWX=ie11uwjarkpme3qbn5l+etea0ibql2w0s...@mail.gmail.com



Re: Warning when mounting btrfs partition, kernel unaligned access

2011-04-13 Thread Kjetil Oftedal
On Wed, 13 Apr 2011, Sébastien Bernard wrote:

 I played a little with btrfs on debian sparc64 (V240).
 I created a LV from my volumegroup and mounted it.
 At this moment I got a warning from the kernel as follow:
 [  624.857466] device fsid 5defc44f31f449af-b797a325301d119a devid 1 transid
 502 /dev/mapper/vgsys-debian64
 [  624.983823] [ cut here ]
 [  625.044657] WARNING: at
 /build/buildd-linux-2.6_2.6.38-3-sparc-675DHN/linux-2.6-2.6.38/debian/build/source_sparc_none/fs/btrfs/extent_io.c:3787
 write_extent_buffer+0xc8/0x128 [btrfs]()
 [  625.260939] Modules linked in: nfsd exportfs nfs lockd fscache nfs_acl
 auth_rpcgss sunrpc ext2 loop flash ext4 mbcache jbd2 crc16 dm_mod raid1 md_mod
 btrfs lzo_compress zlib_deflate crc32c libcrc32c ide_cd_mod cdrom ata_generic
 libata ide_pci_generic sd_mod crc_t10dif qla1280 ohci_hcd ehci_hcd tg3
 sym53c8xx scsi_transport_spi scsi_mod usbcore libphy alim15x3 nls_base [last
 unloaded: scsi_wait_scan]
 [  625.725351] Call Trace:
 [  625.757411]  [103f5cbc] write_extent_buffer+0xc8/0x128 [btrfs]
 [  625.843302]  [103fd7b4] btrfs_read_sys_array+0x3c/0x314 [btrfs]
 [  625.930333]  [103c65e0] open_ctree+0xf28/0x1884 [btrfs]
 [  626.008199]  [1039d01c] btrfs_mount+0x238/0x43c [btrfs]
 [  626.086068]  [00514db8] vfs_kern_mount+0x98/0x1fc
 [  626.157071]  [00514f5c] do_kern_mount+0x24/0xbc
 [  626.225696]  [0052d718] do_mount+0x830/0x898
 [  626.290889]  [0054ed68] compat_sys_mount+0x1c8/0x204
 [  626.365229]  [00406114] linux_sparc_syscall32+0x34/0x40
 [  626.442999] ---[ end trace 1a1c133a476942b9 ]---
 
 Then, after writing on the disk, I got a lot of warning:
 [  822.515875] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  825.897439] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  826.030575] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  826.565416] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  826.692390] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  841.631005] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  841.736359] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  846.774635] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  846.880038] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  847.018567] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  847.157098] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  847.262536] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  851.884641] log_unaligned: 127 callbacks suppressed
 [  851.948889] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  852.054307] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  852.227997] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 [  852.333491] Kernel unaligned access at TPC[103c2204]
 btrfs_csum_final+0x38/0x3c [btrfs]
 
 I peeked a look at the btrf_csum_final and here's the function :
 void btrfs_csum_final(u32 crc, char *result)
 {
 *(__le32 *)result = ~cpu_to_le32(crc);
 }
 
 I know that this problem is certainly an alignment problem and that the sparc
 is prone to that kind of problem.
 If someone could explain what's wrong with it?
 
 
 S. Bernard
 --

On SPARC memory alignment is required. I.e. bytes can be written to any 
address. 32 bit words on the other hand must be written to an address on 
a 4 byte boundary, 64 bit words on 8 byte boundaries and so on.

The problem with the csum function is that it casts the result byte pointer 
to a 32 bits pointer. This pointer might not point to an aligned memory 
position for 32 bits operations.

Either the function must handle unaligned result pointers internally, or 
you must guarantee that the result pointer is always aligned. Which would 
increase performance slightly on most architectures, as those architectures 
that allow unaligned memory accesses often do it at a cost in memory access 
time.

Kjetil Oftedal