On Mon, May 01, 2023 at 07:09:49PM +0800, Alan Huang wrote: > > > 2023年5月1日 下午7:05,Alan Huang <mmpgouride@xxxxxxxxx> 写道: > > > > Hi, > > > > I’m reading section 9.5.4.9, in the second to the last paragraph, there is: > > > > Before the first horizontal line, all readers see the leftmost myconfig structure, > > and after the second horizontal line, all readers will see the rightmost structure. > > Between the two lines, that is, during the grace period, different readers might see different objects > > > > I’m a little confused, in Figure 9.29, the xchg is before the first horizontal line, in my understanding, if the > > reader’s reading is before the xchg, it will read the leftmost myconfg structure. > > And if reader’s reading is after the xchg, it will see the rightmost structure, and because xchg is before the first horizontal line, > Readers before the first horizontal line may also see the rightmost structure. > > > > > So, are there some conflicts between the paragraph and the figure? > > > > Please correct me if I’m wrong. Consider the point in time just before the left-hand reader's rcu_read_unlock() and just after the right-hand reader's rcu_read_lock(). These two readers are both running at that time, and one of those readers sees the old state and the other sees the new state. Does that help, or am I missing the point of your question? Thanx, Paul