Skip to content

Instantly share code, notes, and snippets.

@heiher
heiher / lapcs.adoc
Created September 13, 2023 08:05
Procedure Call Standard for the LoongArch™ Architecture
View lapcs.adoc
View rust-1.70-vendor-loongarch.patch
This file has been truncated, but you can view the full file.
From 82eb33c3a5c66abb3ef255c9b474d2e36e148074 Mon Sep 17 00:00:00 2001
From: WANG Rui <wangrui@loongson.cn>
Date: Fri, 16 Jun 2023 11:15:15 +0800
Subject: [PATCH] rust: 1.70: vendor loongarch
---
vendor/libffi-sys/.cargo-checksum.json | 2 +-
vendor/libffi-sys/src/arch.rs | 20 +
vendor/libffi-sys/src/lib.rs | 4 +
.../linux-raw-sys-0.1.4/.cargo-checksum.json | 2 +-
@heiher
heiher / fanctl.c
Last active March 11, 2023 04:01
CPU Fan control for 3C5000+7A2000
View fanctl.c
/*
============================================================================
Name : fanctl.c
Author : hev <r@hev.cc>
Copyright : Copyright (c) 2023 hev
Description : CPU Fan control for 3C5000+7A2000
============================================================================
*/
#include <fcntl.h>
@heiher
heiher / cow-huge.c
Created November 16, 2022 03:22
COW testcase for Huge pages
View cow-huge.c
/*
============================================================================
Name : cow-huge.c
Author : hev <r@hev.cc>
Copyright : Copyright (c) 2022 hev
Description : COW testcase for Huge pages
============================================================================
*/
#include <stdio.h>
View shmem-fallocate.patch
diff --git a/mm/shmem.c b/mm/shmem.c
index e4c9e5c7081f..1fb3f69e19e2 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -959,11 +959,13 @@ static void shmem_undo_range(struct inode *inode, loff_t lstart, loff_t lend,
folio = shmem_get_partial_folio(inode, lstart >> PAGE_SHIFT);
if (folio) {
same_folio = lend < folio_pos(folio) + folio_size(folio);
- folio_mark_dirty(folio);
- if (!truncate_inode_partial_folio(folio, lstart, lend)) {
@heiher
heiher / atomic-mark-bench.c
Created September 13, 2022 02:45
Atomic mark benchmark
View atomic-mark-bench.c
/*
============================================================================
Name : atomic-mark-bench.c
Author : Rui Wang <wangrui@loongson.cn>
Copyright : Copyright (c) 2022 hev
Description : Atomic mark benchmark
============================================================================
*/
#include <stdio.h>
@heiher
heiher / atomic-flip-bit-bench.c
Created September 9, 2022 09:01
Atomic flip bit benchmark
View atomic-flip-bit-bench.c
/*
============================================================================
Name : atomic-flip-bit-bench.c
Author : Rui Wang <wangrui@loongson.cn>
Copyright : Copyright (c) 2022 hev
Description : Atomic flip bit benchmark
============================================================================
*/
#include <stdio.h>
@heiher
heiher / crossbuild-openssl.sh
Last active July 13, 2022 04:47
Cross build OpenSSL (Debian)
View crossbuild-openssl.sh
#!/bin/bash
set -e
if [ ! -d openssl ]; then
git clone -b OpenSSL_1_1_1q https://github.com/openssl/openssl
fi
pushd openssl
@heiher
heiher / timetctxsw.c
Created June 20, 2022 16:55
Benchmarks the overhead of context switching between 2 threads.
View timetctxsw.c
// Copyright (C) 2010 Benoit Sigoure
// Copyright (C) 2022 hev
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
@heiher
heiher / grub-serial.patch
Created June 20, 2022 07:06
GRUB EFI Serial Read workaround for 3A5000
View grub-serial.patch
diff --git a/grub-core/term/efi/serial.c b/grub-core/term/efi/serial.c
index 4c94723..0caa724 100644
--- a/grub-core/term/efi/serial.c
+++ b/grub-core/term/efi/serial.c
@@ -65,20 +65,52 @@ do_real_config (struct grub_serial_port *port)
port->configured = 1;
}
+#define SERIAL_BASE 0x800000001fe001e0ul
+