Rev 136 | Rev 168 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 136 | Rev 160 | ||
|---|---|---|---|
| Line 739... | Line 739... | ||
| 739 | incremented. Otherwise a new address space share info structure needs |
739 | incremented. Otherwise a new address space share info structure needs |
| 740 | to be created. The backend is then called to duplicate the mapping of |
740 | to be created. The backend is then called to duplicate the mapping of |
| 741 | pages for which a frame is allocated. The duplicated mapping is stored |
741 | pages for which a frame is allocated. The duplicated mapping is stored |
| 742 | in the share info structure B+tree called <varname>pagemap</varname>. |
742 | in the share info structure B+tree called <varname>pagemap</varname>. |
| 743 | Note that the reference count of the frames put into the |
743 | Note that the reference count of the frames put into the |
| 744 | <varname>pagemap</varname> must be incremented to prevent .</para> |
744 | <varname>pagemap</varname> must be incremented in order to avoid a race condition. |
| - | 745 | If the originating address space area had been destroyed before the <varname>pagemap</varname> |
|
| - | 746 | information made it to the page tables of other address spaces that take part in |
|
| - | 747 | the sharing, the reference count of the respective frames |
|
| - | 748 | would have dropped to zero and some of them could have been allocated again.</para> |
|
| 745 | </section> |
749 | </section> |
| 746 | 750 | ||
| 747 | <section> |
751 | <section> |
| 748 | <title>Page faults</title> |
752 | <title>Page faults</title> |
| 749 | 753 | ||