Skip to content

Instantly share code, notes, and snippets.

@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
+
@heiher
heiher / nftables.conf
Last active September 28, 2021 07:34
NfTables rules for transparent proxy
View nftables.conf
#!/usr/bin/nft -f
# vim:set ts=2 sw=2 et:
table inet mangle
delete table inet mangle
table inet mangle {
set byp4 {
type ipv4_addr
flags interval
@heiher
heiher / portmap.c
Created September 24, 2021 15:47
TCP port mapping
View portmap.c
/*
============================================================================
Name : portmap.c
Author : hev <r@hev.cc>
Copyright : Copyright (c) 2021 xyz
Description : TCP port mapping
============================================================================
*/
#include <errno.h>