Lines Matching full:physical

12  * physical eraseblocks and erase counters and knows nothing about logical
13 * eraseblocks, volumes, etc. From this sub-system's perspective all physical
14 * eraseblocks are of two types - used and free. Used physical eraseblocks are
15 * those that were "get" by the 'ubi_wl_get_peb()' function, and free physical
18 * Physical eraseblocks returned by 'ubi_wl_get_peb()' have only erase counter
19 * header. The rest of the physical eraseblock contains only %0xFF bytes.
21 * When physical eraseblocks are returned to the WL sub-system by means of the
27 * physical eraseblocks with low erase counter to free physical eraseblocks
30 * If the WL sub-system fails to erase a physical eraseblock, it marks it as
34 * in a physical eraseblock, it has to be moved. Technically this is the same
37 * As it was said, for the UBI sub-system all physical eraseblocks are either
42 * When the WL sub-system returns a physical eraseblock, the physical
44 * the physical eraseblock is not directly moved from the @wl->free tree to the
46 * physical eraseblock is temporarily stored (@wl->pq).
49 * o we don't want to move physical eraseblocks just after we have given them
52 * o there is a chance that the user will put the physical eraseblock very
55 * Physical eraseblocks stay protected only for limited time. But the "time" is
62 * To put it differently, each physical eraseblock has 2 main states: free and
71 * Depending on the sub-state, wear-leveling entries of the used physical
74 * Note, in this implementation, we keep a small in-RAM object for each physical
95 /* Number of physical eraseblocks reserved for wear-leveling purposes */
100 * exceeded, the WL sub-system starts moving data from used physical
101 * eraseblocks with low erase counter to free physical eraseblocks with high
107 * When a physical eraseblock is moved, the WL sub-system has to pick the target
108 * physical eraseblock to move to. The simplest way would be just to pick the
110 * to an unlimited wear of one or few physical eraseblock. Indeed, imagine a
111 * situation when the picked physical eraseblock is constantly erased after the
113 * counter of the free physical eraseblock to pick. Namely, the WL sub-system
136 * Note, we use (erase counter, physical eraseblock number) pairs as keys in
289 * prot_queue_add - add physical eraseblock to the protection queue.
291 * @e: the physical eraseblock to add
395 * Move the physical eraseblock to the protection queue where it will in wl_get_wle()
406 * prot_queue_del - remove a physical eraseblock from the protection queue.
408 * @pnum: the physical eraseblock to remove
430 * sync_erase - synchronously erase a physical eraseblock.
432 * @e: the physical eraseblock to erase
433 * @torture: if the physical eraseblock has to be tortured
504 * There may be several protected physical eraseblock to remove, in serve_prot_queue()
574 * @e: the WL entry of the physical eraseblock to erase
577 * @torture: if the physical eraseblock has to be tortured
614 * @e: the WL entry of the physical eraseblock to erase
617 * @torture: if the physical eraseblock has to be tortured
643 * This function copies a more worn out physical eraseblock to a less worn out
680 * No free physical eraseblocks? Well, they must be waiting in
682 * triggered again when a free physical eraseblock appears.
684 * No used physical eraseblocks? They must be temporarily
725 * Now pick the least worn-out used physical eraseblock and a
726 * highly worn-out free physical eraseblock. If the erase
765 * Now we are going to copy physical eraseblock @e1->pnum to @e2->pnum.
766 * We so far do not know which logical eraseblock our physical
1030 /* No physical eraseblocks - no deal */
1035 * lowest erase counter of used physical eraseblocks and a high
1036 * erase counter of free physical eraseblocks is greater than
1074 * __erase_worker - physical eraseblock erase worker function.
1078 * This function erases a physical eraseblock and perform torture testing if
1079 * needed. It also takes care about marking the physical eraseblock bad if
1115 * protected physical eraseblocks.
1144 * this physical eraseblock for erasure again would cause
1152 ubi_err(ubi, "bad physical eraseblock %d detected", pnum);
1160 ubi_err(ubi, "no reserved/available physical eraseblocks");
1233 * @pnum: physical eraseblock to return
1234 * @torture: if this physical eraseblock has to be tortured
1236 * This function is called to return physical eraseblock @pnum to the pool of
1237 * free physical eraseblocks. The @torture flag has to be set if an I/O error
1258 * User is putting the physical eraseblock which was selected to
1271 * User is putting the physical eraseblock which was selected
1324 * ubi_wl_scrub_peb - schedule a physical eraseblock for scrubbing.
1326 * @pnum: the physical eraseblock to schedule
1328 * If a bit-flip in a physical eraseblock is detected, this physical eraseblock
1329 * needs scrubbing. This function schedules a physical eraseblock for
1350 * This physical eraseblock was used to move data to. The data
1466 * @pnum: the physical eraseblock to schedule
1895 ubi_err(ubi, "no enough physical eraseblocks (%d, need %d)",
1963 * @pnum: the physical eraseblock number to check
1966 * This function returns zero if the erase counter of physical eraseblock @pnum
2065 * produce_free_peb - produce a free physical eraseblock.
2092 * ubi_wl_get_peb - get a physical eraseblock.
2095 * This function returns a physical eraseblock in case of success and a