Skip to content

Instantly share code, notes, and snippets.

@heiher
heiher / cow-huge.c
Created Nov 16, 2022
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 Sep 13, 2022
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 Sep 9, 2022
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 Jul 13, 2022
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 Jun 20, 2022
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 Jun 20, 2022
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 / portmap.c
Created Sep 24, 2021
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>
@heiher
heiher / loongarch64-li-test-gen.c
Last active Aug 27, 2021
LoongArch64 load immediate test generator
View loongarch64-li-test-gen.c
/*
* li-test-gen.c
* wangrui <wangrui@loongson.cn>
*
* gcc -o li-test-gen li-test-gen.c
* ./li-test-gen
* gcc -o li-test li-test.c li-test.S
* ./li-test
*/
@heiher
heiher / read-read-reorder.c
Last active Aug 3, 2021
Test for reads from the same address out of order (5000)
View read-read-reorder.c
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
static volatile unsigned long s;
static void *
write_handler (void *data)
{
for (;;) {