01:11.50 | *** join/#htc-linux detule (~detule@pool-108-40-44-60.bltmmd.east.verizon.net) |
01:11.50 | *** join/#htc-linux detule (~detule@unaffiliated/d3tul3) |
02:24.40 | jonpry | hey detule |
02:28.48 | detule | you got this thing doing backflips yet? |
02:31.57 | jonpry | i got it to run a userland program while all hacked up |
02:32.14 | jonpry | i think lots of little bugs and one major one |
02:32.56 | detule | major one no nested exceptions? |
02:33.05 | jonpry | yeah |
02:33.32 | jonpry | i can't figure out why that is exactly |
02:33.39 | detule | i thought Cotulla said somehow the way you had the tables organized you didn't need nested exceptions |
02:33.52 | jonpry | for mmu |
02:34.25 | jonpry | nested exceptions are a whole different animal once a user program starts |
02:34.39 | jonpry | because you get like a syscall |
02:34.49 | jonpry | and it does something |
02:34.55 | jonpry | and later you get an irq |
02:35.34 | detule | i see, where's that handled -> like the mmu exceptions i've seen the code you guys wrote |
02:35.56 | jonpry | there is a macro in coresys.S |
02:36.07 | jonpry | EXCEPTION_ENTER_HEAD |
02:36.19 | jonpry | and then those call into entry.S vectors |
02:36.35 | jonpry | i sort of understand where it is going wrong |
02:36.44 | jonpry | all entry.S problems |
02:37.10 | jonpry | part of the problem is this R19 |
02:37.27 | jonpry | which they specially reserve to point to something called a THREADINFO struct |
02:37.45 | detule | i take it that's not thread id |
02:37.57 | jonpry | no it's some pointer |
02:38.17 | jonpry | and i'm not sure how it is supposed to be located in the case of nested exceptions |
02:38.25 | jonpry | except that R19 should still be valid |
02:38.39 | jonpry | they do all this crap |
02:38.49 | jonpry | <PROTECTED> |
02:38.49 | jonpry | <PROTECTED> |
02:38.50 | jonpry | <PROTECTED> |
02:38.50 | jonpry | <PROTECTED> |
02:38.50 | jonpry | <PROTECTED> |
02:38.50 | jonpry | <PROTECTED> |
02:39.07 | jonpry | and then they fuck up the whole thing |
02:39.15 | jonpry | <PROTECTED> |
02:39.15 | jonpry | { memw(R0 + #(_PT_R2928 + 4)) = R31; \ |
02:39.33 | jonpry | so apparently VMPSP is stored in r30's memory |
02:39.37 | jonpry | makes tons of sense |
02:39.49 | jonpry | and r29 is never saved |
02:40.08 | detule | they could have written better comments there |
02:40.22 | jonpry | i've yet to parse that statement |
02:40.33 | jonpry | any mental model of what it is doing seems to fail me |
02:41.04 | jonpry | but i don't really understand what THREAD_INFO is or where it is |
02:42.19 | detule | is there any info in that patent doc - there was some stuff there about thread specific areas but i could be imagining things |
02:42.40 | jonpry | yeah i don't think that is related |
02:42.59 | jonpry | all the different architectures have this thread info pointer somewhere |
02:43.07 | jonpry | it seems to be required for the memory manager to work |
02:43.32 | jonpry | there is come code you can write, like current->mm |
02:43.46 | jonpry | current is essentially r19 |
02:44.42 | jonpry | current also has a pointer to the saved register state or something. so it's like you have to modify it on nested events |
02:48.37 | detule | is arch/arm any help in terms of what's stored in that threadinfo_reg |
02:48.52 | jonpry | i couldn't figure it out |
02:49.12 | jonpry | the thing is that irq doesn't really use it |
02:49.26 | jonpry | er |
02:49.34 | jonpry | well that isn't true |
02:49.49 | jonpry | i have no idea what is wrong with it. or how to debug it |
02:51.28 | *** join/#htc-linux frank_ (c51fcd78@gateway/web/freenode/ip.197.31.205.120) |
03:04.56 | jonpry | it might be like many nested events or something |
03:14.42 | jonpry | for some reason i can't change THREAD_SHIFT from 12 |
03:15.56 | jonpry | R2.H = #HI(_THREAD_SIZE); |
03:16.02 | jonpry | R2.L = #LO(_THREAD_SIZE); |
03:16.30 | jonpry | R2 = neg(R2); |
03:16.41 | jonpry | R2 = and(R0,R2); |
03:16.48 | jonpry | r0 is stack pointer |
03:17.06 | jonpry | wtf is that supposed to do when THREAD_SIZE = 0x1000 ? |
04:47.16 | *** join/#htc-linux jonpry (~jon@2602:306:c417:8aa0:a1c6:f2bf:bcfa:9271) |
05:52.31 | *** join/#htc-linux Bry8Star{T (~Bry8Star-@gateway/tor-sasl/bry8star-2) |
06:21.15 | *** join/#htc-linux mes (~mes@sentry.lazo.ca) |
07:48.47 | *** join/#htc-linux Marc (~quassel@phpbb/modifications/marc1706) |
07:52.59 | *** join/#htc-linux Marc (~quassel@phpbb/modifications/marc1706) |
08:00.49 | *** join/#htc-linux Marc (~quassel@phpbb/modifications/marc1706) |
08:05.31 | *** join/#htc-linux Marc (~quassel@phpbb/modifications/marc1706) |
09:07.21 | *** join/#htc-linux paulk-desktop (~paulk@lib33-1-82-233-88-171.fbx.proxad.net) |
10:09.58 | *** join/#htc-linux BabelO (~fcr@2a01:e35:8adc:3150:21e:8cff:fe2d:7d3f) |
10:09.58 | *** join/#htc-linux BabelO (~fcr@unaffiliated/babelo) |
10:24.46 | *** join/#htc-linux DuperMan (~Duper@89-139-40-200.bb.netvision.net.il) |
10:24.56 | *** join/#htc-linux kiozen (~kiozen@ppp-93-104-75-153.dynamic.mnet-online.de) |
10:34.34 | *** join/#htc-linux helicopter88 (~helicopte@95.234.116.9) |
10:42.30 | *** join/#htc-linux arif-ali (~arif-ali@94-192-24-56.zone6.bethere.co.uk) |
11:06.29 | *** join/#htc-linux apt (~apt@rikers.org) |
11:06.29 | *** topic/#htc-linux is Welcome to the HTC Linux project | Community portal & WiKi http://htc-linux.org | For IRC logs, HaRET & kernel mailing lists etc. see http://htc-linux.org/wiki/index.php?title=Contact | The htc-linux.org project is not affiliated with the HTC Corporation | This channel is for development purposes - Join #htc-linux-chat for offtopic |
11:06.37 | Cotulla | hi |
11:36.24 | *** join/#htc-linux stroughtonsmith (~steven@86-42-134-192-dynamic.b-ras1.bbh.dublin.eircom.net) |
12:02.16 | *** join/#htc-linux rajkosto (~rajkosto@wan.rajkonet.info) |
12:24.24 | Cotulla | jonpry, it should be ok I think. we have 3 types of exceptions to handle. 1)fault 2)interrupt 3)syscall |
12:24.55 | Cotulla | 1)fault and 2)interrupt are assumed to executed with interrupts off, so stopped thread should be never preemted. |
12:25.41 | Cotulla | 3)syscall - here we should enable interrupts to make it work, but one thread can execute code only at the one place -> so it also can not reenter into exception (I don't think inside sycall processing it will call another syscall...) |
12:25.49 | Cotulla | so I don't see a problem |
12:26.09 | Cotulla | for me it works up to the end of main() nice. spinning inside while (1) :) |
12:26.24 | Cotulla | I fixed few serious errors inside code and will push today more later when come back |
12:27.26 | Cotulla | they use THREAD_SIZE to get pointer to thread_info from stack |
12:27.38 | Cotulla | by mask |
12:27.44 | Cotulla | so it can be only 4K 16K and etc |
12:34.10 | Cotulla | and aligned to size |
12:54.52 | *** join/#htc-linux rajkosto (~rajkosto@wan.rajkonet.info) |
13:08.41 | *** join/#htc-linux detule (~detule@unaffiliated/d3tul3) |
13:13.17 | *** part/#htc-linux Cotulla (~myfakemai@109.205.253.11) |
13:43.20 | *** join/#htc-linux helicopter88 (~helicopte@95.234.116.9) |
13:51.00 | *** join/#htc-linux nIghtorius (~nIghtoriu@5ED5430F.cm-7-6b.dynamic.ziggo.nl) |
13:53.44 | *** join/#htc-linux eR^zeRa` (~zzeratul@ip-94-112-113-32.net.upcbroadband.cz) |
13:57.01 | *** join/#htc-linux nIghtorius`test (~nIghtoriu@5ED5430F.cm-7-6b.dynamic.ziggo.nl) |
14:00.17 | *** join/#htc-linux ntg (~ntg@141.0.137.20) |
14:31.37 | *** join/#htc-linux ntg-2 (~ntg@141.0.137.20) |
15:21.37 | *** join/#htc-linux Bry8Star{T (~Bry8Star-@gateway/tor-sasl/bry8star-2) |
15:41.41 | jonpry | Cotulla, i understand they use THREAD_SIZE as a mask |
15:41.53 | jonpry | but shouldn't it be THREAD_SIZE -1? |
15:42.23 | jonpry | like stack and neg(0x1000) doesn't yield anything usable |
15:43.09 | jonpry | i changed it to THREAD_SIZE-1 and it still runs for me but doesn't fix the nested exceptions |
16:14.57 | *** join/#htc-linux detule (~detule@unaffiliated/d3tul3) |
16:34.32 | *** join/#htc-linux gassedup (faxed@c-76-30-161-228.hsd1.tx.comcast.net) |
17:16.43 | *** join/#htc-linux Cotulla (~myfakemai@109.205.253.11) |
17:16.50 | Cotulla | hello |
17:19.50 | Cotulla | jonpry, neg(0x1000) is 0xFFFFF000 I think |
17:19.55 | Cotulla | and it's valid mask |
17:20.18 | Cotulla | kinda (~(0x1000 - 1)) |
17:47.23 | *** join/#htc-linux detule (~detule@unaffiliated/d3tul3) |
18:05.35 | Cotulla | well they save R19 save_pt_regs () |
18:05.42 | Cotulla | so where is a problem |
18:06.13 | Cotulla | and save_pt_regs is called before |
18:06.28 | Cotulla | calling C handler |
18:06.34 | Cotulla | so it should work well |
18:07.22 | Cotulla | anyone knows how to fix "warning unable to open an initial console"? |
18:52.21 | *** join/#htc-linux mes (~mes@S0106000ce55186df.cc.shawcable.net) |
19:35.03 | *** join/#htc-linux a-st (~a-st@unaffiliated/a-st) |
19:46.30 | Cotulla | jonpry I pushed new stuff |
19:46.35 | Cotulla | but there are a lot of debug code |
19:46.38 | Cotulla | be careful |
20:03.14 | *** join/#htc-linux rajkosto (~rajkosto@wan.rajkonet.info) |
20:21.47 | *** join/#htc-linux helicopter88_2 (~helicopte@host242-115-dynamic.18-79-r.retail.telecomitalia.it) |
20:35.49 | *** join/#htc-linux Rajko (~rajkosto@wan.rajkonet.info) |
20:55.03 | *** join/#htc-linux {simonsimons34} (~SimonSick@50.2.8.91) |
20:57.02 | *** join/#htc-linux {simonsimons34} (~SimonSick@unaffiliated/simonsimons34) |
21:53.35 | *** join/#htc-linux arif-ali (~arif-ali@94-192-24-56.zone6.bethere.co.uk) |
22:20.44 | *** join/#htc-linux rajkosto (~rajkosto@wan.rajkonet.info) |
23:30.41 | *** join/#htc-linux eR^zeRa` (~zzeratul@ip-94-112-113-32.net.upcbroadband.cz) |