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
295 * prot_queue_add - add physical eraseblock to the protection queue.
297 * @e: the physical eraseblock to add
408 * Move the physical eraseblock to the protection queue where it will in wl_get_wle()
419 * prot_queue_del - remove a physical eraseblock from the protection queue.
421 * @pnum: the physical eraseblock to remove
443 * ubi_sync_erase - synchronously erase a physical eraseblock.
445 * @e: the physical eraseblock to erase
446 * @torture: if the physical eraseblock has to be tortured
516 * There may be several protected physical eraseblock to remove, in serve_prot_queue()
586 * @e: the WL entry of the physical eraseblock to erase
589 * @torture: if the physical eraseblock has to be tortured
626 * @e: the WL entry of the physical eraseblock to erase
629 * @torture: if the physical eraseblock has to be tortured
655 * This function copies a more worn out physical eraseblock to a less worn out
692 * No free physical eraseblocks? Well, they must be waiting in
694 * triggered again when a free physical eraseblock appears.
696 * No used physical eraseblocks? They must be temporarily
737 * Now pick the least worn-out used physical eraseblock and a
738 * highly worn-out free physical eraseblock. If the erase
777 * Now we are going to copy physical eraseblock @e1->pnum to @e2->pnum.
778 * We so far do not know which logical eraseblock our physical
1045 /* No physical eraseblocks - no deal */
1050 * lowest erase counter of used physical eraseblocks and a high
1051 * erase counter of free physical eraseblocks is greater than
1089 * __erase_worker - physical eraseblock erase worker function.
1093 * This function erases a physical eraseblock and perform torture testing if
1094 * needed. It also takes care about marking the physical eraseblock bad if
1130 * protected physical eraseblocks.
1163 * this physical eraseblock for erasure again would cause
1171 ubi_err(ubi, "bad physical eraseblock %d detected", pnum);
1179 ubi_err(ubi, "no reserved/available physical eraseblocks");
1252 * @pnum: physical eraseblock to return
1253 * @torture: if this physical eraseblock has to be tortured
1255 * This function is called to return physical eraseblock @pnum to the pool of
1256 * free physical eraseblocks. The @torture flag has to be set if an I/O error
1289 * User is putting the physical eraseblock which was selected to
1302 * User is putting the physical eraseblock which was selected
1355 * ubi_wl_scrub_peb - schedule a physical eraseblock for scrubbing.
1357 * @pnum: the physical eraseblock to schedule
1359 * If a bit-flip in a physical eraseblock is detected, this physical eraseblock
1360 * needs scrubbing. This function schedules a physical eraseblock for
1381 * This physical eraseblock was used to move data to. The data
1497 * @pnum: the physical eraseblock to schedule
1926 ubi_err(ubi, "no enough physical eraseblocks (%d, need %d)",
1994 * @pnum: the physical eraseblock number to check
1997 * This function returns zero if the erase counter of physical eraseblock @pnum
2096 * produce_free_peb - produce a free physical eraseblock.
2123 * ubi_wl_get_peb - get a physical eraseblock.
2126 * This function returns a physical eraseblock in case of success and a