Giter Site home page Giter Site logo

Comments (7)

ckirsch avatar ckirsch commented on June 10, 2024

@mhatzl Interesting! I am not seeing this issue on my Mac. Could you please post your output here?

from selfie.

mhatzl avatar mhatzl commented on June 10, 2024

The output I get when running make os under Windows WSL is:

./selfie -l selfie.m -m 2 -l selfie.m -y 1 -l selfie.m -m 1
./selfie: this is the selfie system from selfie.cs.uni-salzburg.at with
./selfie: 64-bit unsigned integers and 64-bit pointers hosted on Linux
./selfie: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie.m
./selfie: selfie executing selfie.m with 2MB physical memory on mipster
./selfie: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
selfie.m: this is the selfie system from selfie.cs.uni-salzburg.at with
selfie.m: 64-bit unsigned integers and 64-bit pointers hosted on selfie
selfie.m: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie.m
selfie.m: selfie executing selfie.m with 1MB physical memory on hypster
selfie.m: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
selfie.m: this is the selfie system from selfie.cs.uni-salzburg.at with
selfie.m: 64-bit unsigned integers and 64-bit pointers hosted on selfie
selfie.m: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie.m
selfie.m: selfie executing selfie.m with 1MB physical memory on mipster
selfie.m: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
synopsis: selfie.m { -c { source } | -o binary | ( -s | -S ) assembly | -l binary } [ ( -m | -d | -r | -y ) 0-4096 ... ]
selfie.m: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
selfie.m: selfie.m exiting with exit code 0
selfie.m: selfie terminating selfie.m with exit code 0
selfie.m: --------------------------------------------------------------------------------
selfie.m: summary: 59944 executed instructions [22.31% nops]
selfie.m: 0.00MB allocated in 6 mallocs
selfie.m: 0.00MB(100.00% of 0.00MB) actually accessed
selfie.m: 0.20MB(20.31% of 1MB) mapped memory
selfie.m: --------------------------------------------------------------------------------
selfie.m: init: lui: 276(0.46%)[0.00%], addi: 23451(39.12%)[19.12%]
selfie.m: memory: ld: 13937(23.25%)[14.09%], sd: 8737(14.57%)[46.24%]
selfie.m: compute: add: 1715(2.86%)[5.94%], sub: 668(1.11%)[19.16%], mul: 1514(2.52%)[9.64%]
selfie.m: compute: divu: 658(1.09%)[7.75%], remu: 667(1.11%)[14.99%]
selfie.m: compare: sltu: 985(1.64%)[25.48%]
selfie.m: control: beq: 1253(2.09%)[62.17%], jal: 4026(6.71%)[33.06%], jalr: 1925(3.21%)[0.00%]
selfie.m: system: ecall: 132(0.22%)
selfie.m: profile: total,max(ratio%)@address,2ndmax,3rdmax
selfie.m: calls: 1925,659(34.23%)@0x4668,329(17.09%)@0x4818,329(17.09%)@0x487C
selfie.m: loops: 186,78(41.93%)@0x6ECC,63(33.87%)@0x214,45(24.19%)@0x610C
selfie.m: loads: 13937,659(4.72%)@0x467C,659(4.72%)@0x4680,659(4.72%)@0x4690
selfie.m: stores: 8737selfie.m: palloc out of physical memory
./selfie: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
./selfie: selfie.m exiting with exit code 21
./selfie: selfie terminating selfie.m with exit code 21
./selfie: --------------------------------------------------------------------------------
./selfie: summary: 198654870 executed instructions [18.81% nops]
./selfie: 3.63MB allocated in 28 mallocs
./selfie: 2.30MB(63.26% of 3.63MB) actually accessed
./selfie: 2.52MB(126.18% of 2MB) mapped memory
./selfie: --------------------------------------------------------------------------------
./selfie: init: lui: 7039562(3.54%)[0.01%], addi: 75054225(37.78%)[18.13%]
./selfie: memory: ld: 41616354(20.94%)[18.49%], sd: 26520261(13.35%)[24.65%]
./selfie: compute: add: 11198618(5.63%)[3.44%], sub: 3389631(1.70%)[22.87%], mul: 3625857(1.82%)[16.20%]
./selfie: compute: divu: 1564809(0.78%)[5.99%], remu: 572866(0.28%)[23.29%]
./selfie: compare: sltu: 4036030(2.03%)[2.68%]
./selfie: control: beq: 4890881(2.46%)[56.60%], jal: 12953942(6.52%)[36.12%], jalr: 6160685(3.10%)[0.00%]
./selfie: system: ecall: 31149(0.01%)
./selfie: profile: total,max(ratio%)@address,2ndmax,3rdmax
./selfie: calls: 6160700,912340(14.80%)@0x4668,516633(8.38%)@0x1976C,393294(6.38%)@0x4818
./selfie: loops: 452566,311789(68.89%)@0x22FAC,59945(13.24%)@0x22F10,43458(9.60%)@0x26B6C
./selfie: loads: 41616354,912340(2.19%)@0x467C,912340(2.19%)@0x4680,912340(2.19%)@0x4690
./selfie: stores: 26520261,912340(3.44%)@0x466C,912340(3.44%)@0x4674,516633(1.94%)@0x19770
./selfie: CPU+memory: reads+writes,reads,writes[reads/writes]
./selfie: heap segment: 3162086,2909742,252344[11.53]
./selfie: gp register: 8981899,8981897,2[4490948.50]
./selfie: data segment: 8987943,8165060,822883[9.92]
./selfie: ra register: 24580481,12290240,12290241[0.99]
./selfie: sp register: 121457478,79749654,41707824[1.91]
./selfie: s0 register: 42463020,30203923,12259097[2.46]
./selfie: stack total: 188500979,122243817,66257162[1.84]
./selfie: stack segment: 55987635,30542593,25445042[1.20]
./selfie: a0 register: 17211537,5512320,11699217[0.47]
./selfie: a1 register: 31085,0,31085[0.00]
./selfie: a2 register: 28670,0,28670[0.00]
./selfie: a3 register: 3,0,3[0.00]
./selfie: a6 register: 2416,2415,1[2415.00]
./selfie: a7 register: 31149,0,31149[0.00]
./selfie: args total: 17304860,5514735,11790125[0.46]
./selfie: t0 register: 92553607,46276933,46276674[1.00]
./selfie: t1 register: 46835914,23418016,23417898[1.00]
./selfie: t2 register: 12606606,6303303,6303303[1.00]
./selfie: t3 register: 426982,213491,213491[1.00]
./selfie: temps total: 152423109,76211743,76211366[1.00]
./selfie: --------------------------------------------------------------------------------
make: *** [Makefile:90: os] Error 21


I have added the following lines to selfie.c. They do nothing except taking up space.

// mhatzl

uint64_t* search_field_entry1(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry2(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry3(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry4(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry5(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry6(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry7(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry8(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry9(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

uint64_t* search_field_entry10(uint64_t* fields, char* name) {
uint64_t* field_entry;

printf(name);

field_entry = fields;
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
while (field_entry != (uint64_t*) 0)
{
field_entry = get_next_entry(field_entry);
}
return (uint64_t *) 0; // no field with this name found
}

// mhatzl

from selfie.

ckirsch avatar ckirsch commented on June 10, 2024

@mhatzl Please try: ./selfie -l selfie.m -m 2 -l selfie1.m -y 2 -l selfie2.m -m 1 after duplicating selfie.m to selfie1.m and selfie2.m

from selfie.

mhatzl avatar mhatzl commented on June 10, 2024

This works.

As a sidenote, running ./selfie -l selfie.m -m 2 -l selfie1.m -y 1 -l selfie2.m -m 1 results in

./selfie -l selfie.m -m 2 -l selfie1.m -y 1 -l selfie2.m -m 1
./selfie: this is the selfie system from selfie.cs.uni-salzburg.at with
./selfie: 64-bit unsigned integers and 64-bit pointers hosted on Linux
./selfie: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie.m
./selfie: selfie executing selfie.m with 2MB physical memory on mipster
./selfie: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
selfie.m: this is the selfie system from selfie.cs.uni-salzburg.at with
selfie.m: 64-bit unsigned integers and 64-bit pointers hosted on selfie
selfie.m: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie1.m
selfie.m: selfie executing selfie1.m with 1MB physical memory on hypster
selfie.m: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
selfie1.m: this is the selfie system from selfie.cs.uni-salzburg.at with
selfie1.m: 64-bit unsigned integers and 64-bit pointers hosted on selfie
selfie1.m: 192752 bytes with 43458 instructions and 14824 bytes of data loaded from selfie2.m
selfie1.m: selfie executing selfie2.m with 1MB physical memory on mipster
selfie1.m: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
synopsis: selfie2.m { -c { source } | -o binary | ( -s | -S ) assembly | -l binary } [ ( -m | -d | -r | -y ) 0-4096 ... ]
selfie1.m: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
selfie1.m: selfie2.m exiting with exit code 0
selfie1.m: selfie terminating selfie2.m with exit code 0
selfie1.m: --------------------------------------------------------------------------------
selfie1.m: summary: 60310 executed instructions [22.32% nops]
selfie1.m:          0.00MB allocated in 6 mallocs
selfie1.m:          0.00MB(100.00% of 0.00MB) actually accessed
selfie1.m:          0.20MB(20.31% of 1MB) mapped memory
selfie1.m: --------------------------------------------------------------------------------
selfie1.m: init:    lui: 278(0.46%)[0.00%], addi: 23594(39.12%)[19.13%]
selfie1.m: memory:  ld: 14022(23.25%)[14.11%], sd: 8791(14.57%)[46.22%]
selfie1.m: compute: add: 1725(2.86%)[5.97%], sub: 672(1.11%)[19.19%], mul: 1522(2.52%)[9.72%]
selfie1.m: compute: divu: 662(1.09%)[7.85%], remu: 671(1.11%)[14.90%]
selfie1.m: compare: sltu: 991(1.64%)[25.53%]
selfie1.m: control: beq: 1261(2.09%)[62.17%], jal: 4051(6.71%)[33.05%], jalr: 1937(3.21%)[0.00%]
selfie1.m: system:  ecall: 133(0.22%)
selfie1.m: profile: total,max(ratio%)@address,2ndmax,3rdmax
selfie1.m: calls:   1937,663(34.22%)@0x4668,331(17.08%)@0x4818,331(17.08%)@0x487C
selfie1.m: loops:   187,78(41.71%)@0x6ECC,63(33.69%)@0x214,46(24.59%)@0x610C
selfie1.m: loads:   14022,663(4.72%)@0x467C,663(4.72%)@0x4680,663(4.72%)@0x4690
selfie1.m: stores:  8791selfie.m: palloc out of physical memory
./selfie: <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
./selfie: selfie.m exiting with exit code 21
./selfie: selfie terminating selfie.m with exit code 21
./selfie: --------------------------------------------------------------------------------
./selfie: summary: 199512291 executed instructions [18.81% nops]
./selfie:          3.63MB allocated in 28 mallocs
./selfie:          2.30MB(63.26% of 3.63MB) actually accessed
./selfie:          2.52MB(126.18% of 2MB) mapped memory
./selfie: --------------------------------------------------------------------------------
./selfie: init:    lui: 7072966(3.54%)[0.01%], addi: 75384583(37.78%)[18.13%]
./selfie: memory:  ld: 41789850(20.94%)[18.48%], sd: 26634870(13.35%)[24.66%]
./selfie: compute: add: 11248386(5.63%)[3.44%], sub: 3403945(1.70%)[22.86%], mul: 3640852(1.82%)[16.19%]
./selfie: compute: divu: 1569680(0.78%)[6.01%], remu: 576266(0.28%)[23.29%]
./selfie: compare: sltu: 4051091(2.03%)[2.69%]
./selfie: control: beq: 4910113(2.46%)[56.62%], jal: 13010205(6.52%)[36.12%], jalr: 6188240(3.10%)[0.00%]
./selfie: system:  ecall: 31244(0.01%)
./selfie: profile: total,max(ratio%)@address,2ndmax,3rdmax
./selfie: calls:   6188255,917822(14.83%)@0x4668,518109(8.37%)@0x1976C,395714(6.39%)@0x4818
./selfie: loops:   453036,311789(68.82%)@0x22FAC,60311(13.31%)@0x22F10,43458(9.59%)@0x26B6C
./selfie: loads:   41789850,917822(2.19%)@0x467C,917822(2.19%)@0x4680,917822(2.19%)@0x4690
./selfie: stores:  26634870,917822(3.44%)@0x466C,917822(3.44%)@0x4674,518109(1.94%)@0x19770
./selfie: CPU+memory:    reads+writes,reads,writes[reads/writes]
./selfie: heap segment:  3175327,2921678,253649[11.51]
./selfie: gp register:   9026388,9026386,2[4513193.00]
./selfie: data segment:  9032432,8204513,827919[9.90]
./selfie: ra register:   24690511,12345255,12345256[0.99]
./selfie: sp register:   121997189,80103960,41893229[1.91]
./selfie: s0 register:   42634267,30320250,12314017[2.46]
./selfie: stack total:   189321967,122769465,66552502[1.84]
./selfie: stack segment: 56218010,30664700,25553310[1.20]
./selfie: a0 register:   17288065,5536720,11751345[0.47]
./selfie: a1 register:   31180,0,31180[0.00]
./selfie: a2 register:   28734,0,28734[0.00]
./selfie: a3 register:   3,0,3[0.00]
./selfie: a6 register:   2447,2446,1[2446.00]
./selfie: a7 register:   31244,0,31244[0.00]
./selfie: args total:    17381673,5539166,11842507[0.46]
./selfie: t0 register:   92952767,46476513,46476254[1.00]
./selfie: t1 register:   47029104,23514611,23514493[1.00]
./selfie: t2 register:   12650928,6325464,6325464[1.00]
./selfie: t3 register:   429310,214655,214655[1.00]
./selfie: temps total:   153062109,76531243,76530866[1.00]
./selfie: --------------------------------------------------------------------------------
make: *** [Makefile:90: os] Error 21

So it looks to me that running hypster with 1 MB was the problem.

from selfie.

ckirsch avatar ckirsch commented on June 10, 2024

@mhatzl Ok, the issue is hypster then. What we actually need for proper diagnosis is hypster outputting an execution profile similar to mipster but with a focus on memory and ecalls performed on behalf of the virtualized process. That would have revealed the root cause. Would you be interested in implementing that in a PR?

from selfie.

mhatzl avatar mhatzl commented on June 10, 2024

Unfortunately, I currently do not have enough time.

from selfie.

danielkocher avatar danielkocher commented on June 10, 2024

I looked into this a little more. The os target in the current configuration seems to cause troubles once the students start to implement the first "real" assignment. I implemented the assembler-parser assignment locally and I got the same error palloc out of physical memory after my first commit, in which I basically only added

  1. the definitions of the RISC-U instruction symbols,
  2. the definition of a function called is_hex_digit(uint64_t c) - to parse hexadecimal numbers,
  3. the definition of a function get_assembly_symbol() - the assembly pendant to get_symbol() for C*, and
  4. the declaration of some other functions (without definitions).

As discussed, I will open a Pull Request to change the os target in the Makefile to used 2MB for hypster (instead of 1MB), and I will look into this issue in more detail when I have time (as proposed in #295 (comment)).

from selfie.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.