Skip to content

Instantly share code, notes, and snippets.

@rasmusrygaard
rasmusrygaard / keybase.md
Created October 6, 2014 18:56
keybase.md

Keybase proof

I hereby claim:

  • I am rasmusrygaard on github.
  • I am rygaard (https://keybase.io/rygaard) on keybase.
  • I have a public key whose fingerprint is 0443 3EC6 2312 F3C6 3129 38EB A9D8 F1E0 ADA4 2ABC

To claim this, I am signing this object:

@rasmusrygaard
rasmusrygaard / dir-bitmap-dump
Created December 5, 2012 02:06
dir-vine with bitmap dump
Copying tests/filesys/extended/dir-vine to scratch partition...
Copying tests/filesys/extended/tar to scratch partition...
qemu -hda /tmp/FWJSfVVzXX.dsk -hdb tmp.dsk -m 4 -net none -nographic -monitor null
PiLo hda1
Loading.........
Kernel command line: -q -f extract run dir-vine
Pintos booting with 4,096 kB RAM...
383 pages available in kernel pool.
383 pages available in user pool.
Calibrating timer... 154,624,000 loops/s.
@rasmusrygaard
rasmusrygaard / dir-vine-persistence.result
Created December 5, 2012 01:27
dir-vine-persistence output
rm -f tmp.dsk
pintos-mkdisk tmp.dsk --filesys-size=2
pintos -v -k -T 150 --qemu --disk=tmp.dsk -p tests/filesys/extended/dir-vine -a dir-vine -p tests/filesys/extended/tar -a tar -- -q -f run dir-vine < /dev/null 2> tests/filesys/extended/dir-vine.errors > tests/filesys/extended/dir-vine.output
pintos -v -k -T 60 --qemu --disk=tmp.dsk -g fs.tar -a tests/filesys/extended/dir-vine.tar -- -q run 'tar fs.tar /' < /dev/null 2> tests/filesys/extended/dir-vine-persistence.errors > tests/filesys/extended/dir-vine-persistence.output
rm -f tmp.dsk
rm -f tmp.dsk
pintos-mkdisk tmp.dsk --filesys-size=2
pintos -v -k -T 60 --qemu --filesys-size=2 -p tests/filesys/extended/dir-vine.output -a dir-vine.output -- -q -f run dir-vine-persistence < /dev/null 2> .errors > .output
pintos -v -k -T 60 --qemu --filesys-size=2 -g fs.tar -a .tar -- -q run 'tar fs.tar /' < /dev/null 2> -persistence.errors > -persistence.output
rm -f tmp.dsk
@rasmusrygaard
rasmusrygaard / cache_get_block
Created November 28, 2012 04:55
cache_get_block pseudocode
Getting sector N
- Acquire lock for cache list
- acquire lock for in-flight
- if bit N is on:
- release cache list
- release in-flight
- sleep
- acquire cache list, in-flight
@rasmusrygaard
rasmusrygaard / pqueue-linked-list.cpp
Created November 9, 2012 18:15
pqueue-linked-list.cpp
#include "pqueue-linked-list.h"
using namespace std;
LinkedListPQueue::LinkedListPQueue() {}
LinkedListPQueue::~LinkedListPQueue() {}
string LinkedListPQueue::peek() const {
return list->value;
}
@rasmusrygaard
rasmusrygaard / pqueue-linked-list.h
Created November 9, 2012 18:14
pqueue-linked-list.h
#ifndef _linked_list_pqueue_
#define _linked_list_pqueue_
#include "pqueue.h"
#include <string>
class LinkedListPQueue : public PQueue {
public:
LinkedListPQueue();
~LinkedListPQueue();
@rasmusrygaard
rasmusrygaard / gist:3903777
Created October 17, 2012 04:56
Adding pre-commit hook
// Execute the line below from the pintos/ directory!
curl https://raw.github.com/gist/3903739/7ea62b1e6f646e433304e1272557122ec7e61fd0/pre-commit -o .git/hooks/pre-commit && chmod +x .git/hooks/pre-commit
@rasmusrygaard
rasmusrygaard / pre-commit
Created October 17, 2012 04:46
Pintos pre-commit
#!/bin/sh
# Move to right directory
cd src/userprog
# Attempt to build.
make
declare -i status=$?
# Prompt user
@rasmusrygaard
rasmusrygaard / gist:3890917
Created October 15, 2012 05:22
Debugging userprograms
// From pintos/src/userprog/build
make ../../examples
// First shell. Replace echo with whatever executable you want.
pintos -v -k -T 60 --gdb --bochs --filesys-size=2 -p ../examples/echo -a echo -- -q -f run 'echo x'
// Second shell. Also from build directory
pintos-gdb ../../examples/echo
... in GDB
source ../../misc/gdb-macros