Rev 160 | Rev 169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 160 | Rev 168 | ||
|---|---|---|---|
| Line 760... | Line 760... | ||
| 760 | by looking up the frame for the faulting translation in the ELF |
760 | by looking up the frame for the faulting translation in the ELF |
| 761 | image.</para> |
761 | image.</para> |
| 762 | 762 | ||
| 763 | <para>Shared address space areas need to consider the |
763 | <para>Shared address space areas need to consider the |
| 764 | <varname>pagemap</varname> B+tree. First they need to make sure |
764 | <varname>pagemap</varname> B+tree. First they need to make sure |
| 765 | whether to mapping is not present in the <varname>pagemap</varname>. |
765 | whether the mapping is not present in the <varname>pagemap</varname>. |
| 766 | If it is there, then the frame reference count is increased and the |
766 | If it is there, then the frame reference count is increased and the |
| 767 | page fault is resolved. Otherwise the handler proceeds similarily to |
767 | page fault is resolved. Otherwise the handler proceeds similarily to |
| 768 | the non-shared case. If it allocates a physical memory frame, it must |
768 | the non-shared case. If it allocates a physical memory frame, it must |
| 769 | increment its reference count and add it to the |
769 | increment its reference count and add it to the |
| 770 | <varname>pagemap</varname>.</para> |
770 | <varname>pagemap</varname>.</para> |
| Line 784... | Line 784... | ||
| 784 | associating TLB entries with address spaces through assigning |
784 | associating TLB entries with address spaces through assigning |
| 785 | identification numbers to them. In HelenOS, the term ASID, originally |
785 | identification numbers to them. In HelenOS, the term ASID, originally |
| 786 | taken from the mips32 terminology, is used to refer to the address space |
786 | taken from the mips32 terminology, is used to refer to the address space |
| 787 | identification number. The advantage of having ASIDs is that TLB does |
787 | identification number. The advantage of having ASIDs is that TLB does |
| 788 | not have to be invalidated on thread context switch as long as ASIDs are |
788 | not have to be invalidated on thread context switch as long as ASIDs are |
| 789 | unique. Unfotunatelly, architectures supported by HelenOS use all |
789 | unique. Unfortunatelly, architectures supported by HelenOS use all |
| 790 | different widths of ASID numbers<footnote> |
790 | different widths of ASID numbers<footnote> |
| 791 | <para>amd64 and ia32 don't use similar abstraction at all, mips32 |
791 | <para>amd64 and ia32 don't use similar abstraction at all, mips32 |
| 792 | has 8-bit ASIDs and ia64 can have ASIDs between 18 to 24 bits |
792 | has 8-bit ASIDs and ia64 can have ASIDs between 18 to 24 bits |
| 793 | wide.</para> |
793 | wide.</para> |
| 794 | </footnote> out of which none is sufficient. The amd64 and ia32 |
794 | </footnote> out of which none is sufficient. The amd64 and ia32 |