• Home
  • Raw
  • Download

Lines Matching full:physical

25  * physical eraseblocks and erase counters and knows nothing about logical
26 * eraseblocks, volumes, etc. From this sub-system's perspective all physical
27 * eraseblocks are of two types - used and free. Used physical eraseblocks are
28 * those that were "get" by the 'ubi_wl_get_peb()' function, and free physical
31 * Physical eraseblocks returned by 'ubi_wl_get_peb()' have only erase counter
32 * header. The rest of the physical eraseblock contains only %0xFF bytes.
34 * When physical eraseblocks are returned to the WL sub-system by means of the
40 * physical eraseblocks with low erase counter to free physical eraseblocks
43 * If the WL sub-system fails to erase a physical eraseblock, it marks it as
47 * in a physical eraseblock, it has to be moved. Technically this is the same
50 * As it was said, for the UBI sub-system all physical eraseblocks are either
55 * When the WL sub-system returns a physical eraseblock, the physical
57 * the physical eraseblock is not directly moved from the @wl->free tree to the
59 * physical eraseblock is temporarily stored (@wl->pq).
62 * o we don't want to move physical eraseblocks just after we have given them
65 * o there is a chance that the user will put the physical eraseblock very
68 * Physical eraseblocks stay protected only for limited time. But the "time" is
75 * To put it differently, each physical eraseblock has 2 main states: free and
84 * Depending on the sub-state, wear-leveling entries of the used physical
87 * Note, in this implementation, we keep a small in-RAM object for each physical
108 /* Number of physical eraseblocks reserved for wear-leveling purposes */
113 * exceeded, the WL sub-system starts moving data from used physical
114 * eraseblocks with low erase counter to free physical eraseblocks with high
120 * When a physical eraseblock is moved, the WL sub-system has to pick the target
121 * physical eraseblock to move to. The simplest way would be just to pick the
123 * to an unlimited wear of one or few physical eraseblock. Indeed, imagine a
124 * situation when the picked physical eraseblock is constantly erased after the
126 * counter of the free physical eraseblock to pick. Namely, the WL sub-system
149 * Note, we use (erase counter, physical eraseblock number) pairs as keys in
281 * prot_queue_add - add physical eraseblock to the protection queue.
283 * @e: the physical eraseblock to add
388 * Move the physical eraseblock to the protection queue where it will in wl_get_wle()
399 * prot_queue_del - remove a physical eraseblock from the protection queue.
401 * @pnum: the physical eraseblock to remove
423 * sync_erase - synchronously erase a physical eraseblock.
425 * @e: the the physical eraseblock to erase
426 * @torture: if the physical eraseblock has to be tortured
497 * There may be several protected physical eraseblock to remove, in serve_prot_queue()
567 * @e: the WL entry of the physical eraseblock to erase
570 * @torture: if the physical eraseblock has to be tortured
606 * @e: the WL entry of the physical eraseblock to erase
609 * @torture: if the physical eraseblock has to be tortured
635 * This function copies a more worn out physical eraseblock to a less worn out
668 * No free physical eraseblocks? Well, they must be waiting in
670 * triggered again when a free physical eraseblock appears.
672 * No used physical eraseblocks? They must be temporarily
700 * Now pick the least worn-out used physical eraseblock and a
701 * highly worn-out free physical eraseblock. If the erase
740 * Now we are going to copy physical eraseblock @e1->pnum to @e2->pnum.
741 * We so far do not know which logical eraseblock our physical
1000 /* No physical eraseblocks - no deal */
1005 * lowest erase counter of used physical eraseblocks and a high
1006 * erase counter of free physical eraseblocks is greater than
1043 * __erase_worker - physical eraseblock erase worker function.
1049 * This function erases a physical eraseblock and perform torture testing if
1050 * needed. It also takes care about marking the physical eraseblock bad if
1081 * protected physical eraseblocks.
1110 * this physical eraseblock for erasure again would cause
1118 ubi_err(ubi, "bad physical eraseblock %d detected", pnum);
1126 ubi_err(ubi, "no reserved/available physical eraseblocks");
1199 * @pnum: physical eraseblock to return
1200 * @torture: if this physical eraseblock has to be tortured
1202 * This function is called to return physical eraseblock @pnum to the pool of
1203 * free physical eraseblocks. The @torture flag has to be set if an I/O error
1224 * User is putting the physical eraseblock which was selected to
1237 * User is putting the physical eraseblock which was selected
1290 * ubi_wl_scrub_peb - schedule a physical eraseblock for scrubbing.
1292 * @pnum: the physical eraseblock to schedule
1294 * If a bit-flip in a physical eraseblock is detected, this physical eraseblock
1295 * needs scrubbing. This function schedules a physical eraseblock for
1316 * This physical eraseblock was used to move data to. The data
1717 ubi_err(ubi, "no enough physical eraseblocks (%d, need %d)",
1784 * @pnum: the physical eraseblock number to check
1787 * This function returns zero if the erase counter of physical eraseblock @pnum
1891 * produce_free_peb - produce a free physical eraseblock.
1918 * ubi_wl_get_peb - get a physical eraseblock.
1921 * This function returns a physical eraseblock in case of success and a