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 |